這兩個字符串字謎測試問題:在蟒蛇
寫接收兩個字符串作爲 參數,兩者由字母字符組成,並返回 真如果兩個字符串的函數命名test_for_anagrams anagrams,否則爲False。兩個字符串是 anagrams,如果一個字符串可以通過重新排列另一個字符串中的 字符來構造,那麼該字符串只需使用原始字符串中的所有字符一次。例如,字符串「Orchestra」和 「Carthorse」是anagrams,因爲每個人都可以通過 重新排列另一個人物中的所有字符 在其中一個字符中構造一次。請注意,在這裏大小寫 並不重要,即小寫字符可以被認爲與大寫字符 相同。
我的代碼:
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
和Carthorse
,它給我造成的False
。對於字符串The eyes
和They see
也是如此。任何幫助,將不勝感激。
沒有時間來調試程序的權利,但這裏的短期解決辦法:'返回計數器(str_1.lower())==計數器(str_2.lower())'和'Counter'從'collections' 。 – timgeb
只是一個音符 - Counter是'collections'模塊的一部分。 我想它張貼一個答案,但@timgeb的速度更快:) –
好的謝謝。 –