2013-06-17 2 views
1

다음 코드는 python.I에서 제공됩니다. gawk로 쓰고 싶지만 syntax.please에 대한 적절한 링크를 찾을 수 없습니다.GAWK에 다음 코드를 작성하고 싶습니까?

t=0; 
while(t<10): 
    x=1 
    s = raw_input() 
    for c in s: 
     if(c=='F' or c=='L' or c=='D' or c=='T'): 
      x = x*2 
    print x 
    t = t+1 

답변

1
gawk 'NR <= 10 { x=1; len = length($0); 
       for (i = 1; i < len; i++) 
        if (substr($0, i, 1) ~ /[FLDT]/) 
         x *= 2; 
       print x 
       }' 

안된 때문에 아마 상당히 정확하지. substr 줄이 가장 문제가되는 줄입니다. $0 (거의 효율성의 전형)에서 한 번에 한 문자를 추출한 다음 정규식과 비교합니다. 당신은 n = gsub(/[FLDT]/, 'X')을 고려해 볼 수 있습니다.이 숫자는 대입 횟수를 계산합니다 (따라서 행의 수는 [FLDT]입니다). 그리고 나서 x을 적절히 곱하십시오.

NR <= 10 조건은 처음 10 줄만 처리합니다.

+0

감사합니다 ... –

관련 문제