2011-04-13 2 views
0

가정하자 내가 입력을 할 수 AAAABBCCC 같은 패턴 .....임 약간 좀 도움이 필요 ..... 스크립트는 ..... 다음

다음 스크립트는 T1 0 A와 같은 인쇄해야합니다 된 patern가 AAABBCC 같이 CABCCBA

경우 -4 B-2 C-3 0 T1

T1 수돗물이고 0 다음 라인을 나타낸다

......

다음 스크립트가 생성되어야 패턴 T1 0 A-3 B-2 C-2 0 T1 0 CAB C-2 BA 0 T1 # ..... 하나의 T1이, 도와주세요 TCL에 임 새로운 ...... 패턴 사이에 허용되는

답변

3
set pattern1 {AAAABBCCC} 
set pattern2 {AAABBCC 
CABCCBA} 

proc process {pattern} { 
    lappend result "T1" 
    foreach line [split $pattern "\n"] { 
     lappend result "0" 
     foreach {chunk symbol} [regexp -all -inline {(.)(?:\1+)?} $line] { 
      set num [string length $chunk] 
      lappend result $symbol[expr {($num>1)?"-$num":""}] 
     } 
     lappend result "0" "T1" "\n" 
    } 
    return [join $result] 
} 

puts [process $pattern1] 
puts [process $pattern2] 

의 출력을 T1으로 시작 .... T1과 종료하고

T1 0 A-4 B-2 C-3 0 T1 

T1 0 A-3 B-2 C-2 0 T1 
0 C A B C-2 B A 0 T1 
+0

하이 그랜드 : 상기 코드 I는 두 줄의 파일이있는 경우 MUL = 64 likr 필자에 변수 WER 동일한 행 내에있는 anoy = THER 변수 a를 승산하는 것을 나타낸다 이는 64 번 ...... 즉 A-64 .... 마찬가지로 다음 줄에는 B가 있고 mul = 32는 B-32를 나타냅니다 .... 어떻게 할 수 있습니까 ...... –

+0

죄송합니다, 이해하지 못해요. 당신. 내 대답과는 무관 한 것처럼 보입니다. 어쨌든, 최소한의 노력을 기울이고 혼자서 뭔가를하십시오. 붙어 있다면 코드를 보여 주시면 커뮤니티가 도와 드리겠습니다. 이 사이트는 처음부터 전체 솔루션을 요청할 적절한 장소가 아닙니다 (실험실 용). – GrAnd