Python 字谜函数表示;ellhe“;及;“你好”;这些是字谜
我试图检查两个给定的字符串是否是字谜Python 字谜函数表示;ellhe“;及;“你好”;这些是字谜,python,for-loop,Python,For Loop,我试图检查两个给定的字符串是否是字谜 def Anagram(Word1, Word2): if len(Word1.lower()) == len(Word2.lower()): for Char in Word1.lower(): if Char in Word2.lower(): return (Word2,"Is An Anagram Of", Word1) else:
def Anagram(Word1, Word2):
if len(Word1.lower()) == len(Word2.lower()):
for Char in Word1.lower():
if Char in Word2.lower():
return (Word2,"Is An Anagram Of", Word1)
else:
return (Word2, "Is Not A Anagram", Word1)
else:
return (Word2, "Is Not A Anagram", Word1)
print(Anagram("Hello", "ellhe"))
问题是,这打印出的是一个字谜,而不是。例如,它说“ellhe”和“hello”是字谜,但它们有一个字母不同(“o”和第二个“e”)。我做错了什么?你只检查了一封信就回来了,但你的方法还是有缺陷的。如果执行正确,如果单词包含相同的字母,它将返回true,但将忽略它们出现的频率。以下是一些事情: 1) 您将在一个字符匹配时返回,而不是在整个单词匹配时返回
2) 我相信你需要添加一些逻辑来处理同一个字母多次出现的情况。否则,hello和hello将显示为彼此的字谜。这是一行:对两个字符串进行排序,并比较排序后的字符列表:
if sorted(word1.lower()) ==
sorted(word2.lower()):
我相信您可以完成该例程的其余部分,因为您已经处理了该逻辑。您需要做的不仅仅是检查字母是否相同,还需要检查计数是否与您在比较第一个字符后立即返回的值相同您的函数在第一个字符上返回的值相同。它不会检查整个字符串。