Итак, мой код получает два слова и проверяет, является ли это анаграммой другого.Мой код anagram не учитывает несколько букв
Однако не работает, если несколько писем обмениваются, хотя я пытался это объяснить.
storedword = input("Enter your primary word \t")
global word
word = list(storedword)
word3 = input("Enter anagram word \t")
word3lowercase = word3.lower()
anaw = list(word3lowercase)
counter = int(0)
letterchecker = int(0)
listlength = len(word)
newcounter = int(0)
if len(anaw) != len(word):
print ("not anagram")
if len(anaw) == len(word):
while counter < listlength and newcounter < listlength:
tempcount = 0
if anaw[counter] == word[newcounter]:
temp = word[newcounter]
word[newcounter] = word[tempcount]
word[tempcount]=temp
letterchecker +=1
counter +=1
tempcount +=1
newcounter = int(0)
else:
newcounter +=1
if counter == len(word):
print ("anagram")
else:
print ("not anagram")
Я думаю, что это пошло куда-то не так, после раздела if len(anaw)
, например, если первичное слово «Hannah», а вторичное слово «hannnn», он считает, что это анаграмма.
Можете ли вы объяснить логику вы пытались осуществить здесь? Также ... 'int (0)' ??? – Idos
Также вы можете просто пойти 'sorted (first_word) == sorted (second_word)' и сэкономить всю эту проблему – Idos
означает анаграмма, я ее отредактировал –