1

次のコードはpythonで与えられています.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 
4

1 に答える 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行は、問題が発生する可能性が最も高い行です。一度に1文字ずつ抽出し$0(効率の縮図とは言えません)、それを正規表現と比較します。n = gsub(/[FLDT]/, 'X')それが行う置換の数(したがって、行内の文字数)を与えるものを検討し、適切[FLDT]に乗算することができxます。

条件は最初のNR <= 1010 行のみを処理します。

于 2013-06-17T07:29:20.153 に答える