CodeChefオンライン ジャッジで NZEC エラーを表示し続ける単純な python コードがあります。コードは問題GRANAMA用です。
シェフは、2 つのレシピを比較するための新しいテクニックを学びました。レシピには、処理される時間の昇順で成分のリストが含まれています。成分は文字「a」-「z」で表されます。レシピの i 番目の文字は、i 番目の材料を表します。材料は、レシピ内で複数回使用できます。
テクニックは以下の通り。それぞれのリストを比較して、2 つのレシピを比較します。両方のレシピで使用される材料のセットが等しく、各材料が
両方で同じ回数使用される場合 (処理順序は関係ありません)、
それらはグラナマ レシピとして宣言されます。(「グラナマ」は「似たような」という意味のシェフ語です。) シェフは昨日考案した 2 つのレシピを取り入れました。彼は技術を使ってそれらを比較したかった. 残念なことに、Chef は各材料がレシピで使用された回数を追跡するのを忘れていました。彼は成分を比較しただけで、それらの成分は比較しませんでした
周波数。より正確には、一方のレシピで使用され、他方のレシピで使用されていない材料がない場合、Chef は 2 つのレシピをグラナマと見なします。あなたの仕事は、Chef が 2 つのレシピを (グラナマかグラナマでないか) 正しく分類したかどうかを報告することですが、Chef は頻度を追跡するのを忘れていました。
Input
The first line of the input contains a single integer T denoting the number of test
cases. The description for T test cases follows. Each test case consists of a single
line containing two space-separated strings R and S denoting the two recipes.
Output
For each test case, output a single line containing "YES" (quotes for clarity) if Chef
correctly classified the two recipes as granama or not granama. Otherwise, output a
single line containing "NO" (quotes for clarity) if Chef declared two recipes as
granama when they actually are not.
Constraints
1 ≤ T ≤ 100
1 ≤ |R|, |S| ≤ 1000
Example
Input:
3
alex axle
paradise diapers
alice bob
Output:
YES
NO
YES
Explanation:
Example case 1: Chef declared them as granama recipes. They are actually granama
because the sets of ingredients and the number of times each ingredient has been used
are equal. The Chef got it right!
Example case 2: Chef declared them as granama recipes because both sets of ingredients
are equal. But they are NOT granama since ingredient 'a' has been used twice in the
first recipe but only once in the second. The Chef was incorrect!
Example case 3: Chef declare them as not granama. They are not granama as the sets of
ingredients are different. Hence, the Chef was right!
コードは次のとおりです。
k=int(raw_input())
for n in range(k):
recipes=raw_input().split(' ')
w1=recipes[0]
w2=recipes[1]
for i in w1:
if i in w1:
w1=w1.replace(i,'')
w2=w2.replace(i,'')
if w1=='' and w2=='':
dict1={}
dict2={}
for i in recipes[0]:
if i in dict1:
dict1[i]+=1
else:
dict1[i]=1
for i in recipes[1]:
if i in dict2:
dict2[i]+=1
else:
dict2[i]=1
flag=True
for i in dict1:
if not dict1[i]==dict2[i]:
print 'NO'
flag=False
break
if flag:
print 'YES'
else:
print 'YES'