цикл while для проверки анаграмм в python

У меня есть следующее упражнение: два слова являются анаграммами, если вы можете переставить буквы одного так, чтобы получилось другое. Напишите функцию is_anagram, которая принимает две строки и возвращает True, если они являются анаграммами.

Я разработал функцию, но она не работает должным образом, и я не могу понять, почему. Может ли кто-нибудь сказать мне, что я делаю неправильно? Большое спасибо.

def isa(s,t):  
    if len(s)!=len(t):  
        print "impossible"  
    if len(s)==len(t):  
        i=0  
        while i<len(s)-1:  
            for i in s:  
                if i in t:  
                    print "yay"  
                print "NO"

person Maya    schedule 04.01.2017    source источник
comment
Кажется, вы не увеличиваете i, который используется в условии вашего while-loop. Кроме того, меня смущает комбинация циклов while и for здесь. Просто for-loop было бы достаточно.   -  person Abdou    schedule 04.01.2017
comment
Попробуйте def isa(t,s): return sorted(t)==sorted(s). Это помещает строки в один и тот же порядок и затем сравнивает их.   -  person Abdou    schedule 04.01.2017
comment
Большое спасибо, Абду. Я исключил цикл while и применил несколько изменений. Теперь это работает. Еще раз спасибо.   -  person Maya    schedule 08.01.2017


Ответы (1)


person    schedule
comment
Спасибо за быстрый ответ, но это не то, что я ищу. Я хотел бы отладить структуру, которую я разработал с помощью цикла while, и понять свою ошибку. - person Maya; 04.01.2017
comment
@Ajla Лучший способ сделать это - просто продолжать взламывать его ... всегда - person Totem; 05.01.2017