Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python字谜字符串_Python - Fatal编程技术网

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.")