Python字谜字符串
我应该写一个函数来确定两个字符串是否是字谜 我现在写的代码,不是很好用 例如,一个示例输入是Python字谜字符串,python,Python,我应该写一个函数来确定两个字符串是否是字谜 我现在写的代码,不是很好用 例如,一个示例输入是 Tom Cruise So I'm cuter 输出应该是True,但我的代码保持为False 例如,当输入为 the eyes they see 我的代码实际上是True,这是正确的答案 所以我不知道为什么我的代码只适用于某些输入 有人能帮忙吗 def anagram(a, b): if(sorted(a)==sorted(b)): return True els
Tom Cruise
So I'm cuter
输出应该是True
,但我的代码保持为False
例如,当输入为
the eyes
they see
我的代码实际上是True
,这是正确的答案
所以我不知道为什么我的代码只适用于某些输入
有人能帮忙吗
def anagram(a, b):
if(sorted(a)==sorted(b)):
return True
else:
return False
您需要删除所有非字母字符,然后将所有字母转换为小写:
import re
regex = re.compile('[^a-zA-Z]')
return sorted(regex.sub('', a).lower()) == sorted(regex.sub('', b).lower())
您需要删除所有非字母字符,然后将所有字母转换为小写:
import re
regex = re.compile('[^a-zA-Z]')
return sorted(regex.sub('', a).lower()) == sorted(regex.sub('', b).lower())
正如我在上面的注释部分所提到的,您需要删除任何符号,例如
”
,并将每个字母转换为大写或小写,以避免大小写不匹配。因此,您的代码应该如下所示:
def anagram(a, b):
newA = ''.join(elem.lower() for elem in a if elem.isalpha())
newB = ''.join(elem.lower() for elem in b if elem.isalpha())
if(sorted(newA)==sorted(newB)):
return True
else:
return False
a = "Tom Cruise"
b = "So I'm cuter"
print(anagram(a,b))
这将为您提供:
True
正如我在上面的注释部分所提到的,您需要删除任何符号,例如
”
,并将每个字母转换为大写或小写,以避免大小写不匹配。因此,您的代码应该如下所示:
def anagram(a, b):
newA = ''.join(elem.lower() for elem in a if elem.isalpha())
newB = ''.join(elem.lower() for elem in b if elem.isalpha())
if(sorted(newA)==sorted(newB)):
return True
else:
return False
a = "Tom Cruise"
b = "So I'm cuter"
print(anagram(a,b))
这将为您提供:
True
您需要删除字符串中的none-alpha字符,并将这两个字符串转换为一致的大小写
Check this one...
s1=input("Enter first string:")
s2=input("Enter second string:")
a=''.join(t for t in s1 if t.isalnum())
b=''.join(t for t in s2 if t.isalnum())
a=a.lower()
b=b.lower()
if(sorted(a)==sorted(b)):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")
您必须删除字符串中的无字母字符,并将两个字符串转换为一致的大小写。我删除了,但大小写相同:(您需要删除符号,例如
”
,并且只保留字母字符。您是指输入中的符号吗?我不想删除它。这就是为什么它会让我头痛的原因。我这么做了,但它是一样的。)(您需要删除符号,例如”
,并且只保留字母字符。您是指输入中的符号吗?我不想删除它。这就是为什么它让我头疼的原因。)
Check this one...
s1=input("Enter first string:")
s2=input("Enter second string:")
a=''.join(t for t in s1 if t.isalnum())
b=''.join(t for t in s2 if t.isalnum())
a=a.lower()
b=b.lower()
if(sorted(a)==sorted(b)):
print("The strings are anagrams.")
else:
print("The strings aren't anagrams.")