这是问题:
编写一个名为 test_for_anagrams 的函数,该函数接收两个字符串:
参数,均由字母字符组成,返回
如果两个字符串是字谜词,则为 True,否则为 False。两个字符串是
如果一个字符串可以通过重新排列来构造,则为 anagrams
另一个字符串中的字符使用所有字符
原始字符串恰好一次。例如,字符串“Orchestra”和
“Carthorse”是字谜词,因为每个字谜词都可以由
使用所有字符重新排列另一字符中的字符
其中一个恰好一次。请注意,大小写并不重要
这里即小写字符可以被认为与
大写字母。
My code:
def test_for_anagrams (str_1, str_2):
str_1 = str_1.lower()
str_2 = str_2.lower()
print(len(str_1), len(str_2))
count = 0
if (len(str_1) != len(str_2)):
return (False)
else:
for i in range(0, len(str_1)):
for j in range(0, len(str_2)):
if(str_1[i] == str_2[j]):
count += 1
if (count == len(str_1)):
return (True)
else:
return (False)
#Main Program
str_1 = input("Enter a string 1: ")
str_2 = input("Enter a string 2: ")
result = test_for_anagrams (str_1, str_2)
print (result)
这里的问题是当我输入字符串时Orchestra
and Carthorse
,它给我的结果是False
。字符串也一样The eyes
and They see
。任何帮助,将不胜感激。
我是Python新手,如果我错了,请原谅
我相信这可以通过不同的方法来完成:对给定的字符串进行排序,然后比较它们。
def anagram(a, b):
# string to list
str1 = list(a.lower())
str2 = list(b.lower())
#sort list
str1.sort()
str2.sort()
#join list back to string
str1 = ''.join(str1)
str2 = ''.join(str2)
return str1 == str2
print(anagram('Orchestra', 'Carthorse'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)