ここにdictと文字列があり、dictにはキーと値のペアとしてchar-countが含まれています。文字列内のすべての文字が完全にdictに含まれているかどうかを確認したいと思います。
これは、dictに文字列のすべての文字が含まれ、それらのカウントがdictの対応する値以下であることを意味します。
def isValidWord(strng, dct):
"""
Returns True if strng is entirely
composed of letters in the dct.
Otherwise, returns False.
Does not mutate hand or dct.
"""
d={}
for x in strng:
d[x]=d.get(x,0)
for x in d:
if d[x]> dct.get(x,0):
return False
return True
ほとんどの場合はうまくいくようですが、うまくいかない場合もあります。例えば -
isValidWord('chayote', {'a': 1, 'c': 2, 'u': 2, 't': 2, 'y': 1, 'h': 1, 'z': 1,
'o': 2})
これにより出力が得られますTrue
が、正しい出力はFalse
です。これはe
、口述にないためです。
ここのバグはどこにありますか?そして、dict内のすべてのペアが別のdictにも存在するかどうかを確認するにはどうすればよいですか?おそらく(キーの)対応する値が等しいか、それよりも低くなります。