Chciałbym porównać dwa stringi tej samej długości i zwrócić True jeśli będą identyczne bądź będą różniły się jednym znakiem. I mam na myśli różnice znaku na tym samym miejscu.
Więc zadanie jest proste - wystarczy sobie stworzyć zmienną
po czym w pętli porównywać kolejne znaki:
I jeśli jest różnica to zwiększyć errors o jeden, sprawdzić czy teraz jest większe od 1 i jeśli tak to zwrócić
Więc zadanie jest proste - wystarczy sobie stworzyć zmienną
errors = 0
po czym w pętli porównywać kolejne znaki:
first_word[i] == second_word[i]
I jeśli jest różnica to zwiększyć errors o jeden, sprawdzić czy teraz jest większe od 1 i jeśli tak to zwrócić
@venomik
Możesz najpierw porównać całe stringi i jak są takie same to zwrócić True, dopiero gdy nie będą takie same to zacząć porównywanie znak po znaku i jak napotkasz drugi "error" to możesz przerwać pętlę, bo dalsze sprawdzanie nie ma sensu. Jak masz długie te stringi albo dużo ich jest, to możesz zaoszczędzić trochę czasu.
Możesz najpierw porównać całe stringi i jak są takie same to zwrócić True, dopiero gdy nie będą takie same to zacząć porównywanie znak po znaku i jak napotkasz drugi "error" to możesz przerwać pętlę, bo dalsze sprawdzanie nie ma sensu. Jak masz długie te stringi albo dużo ich jest, to możesz zaoszczędzić trochę czasu.
@venomik: no to jest jakiś oneliner. Przykładowo robisz sum(x!=y for x,y in zip(ciag1, ciag2)) czy coś podobnego i sprawdzasz czy równa się jeden. To co chcesz zrobić to sprawdzić czy odległość hamminga dwóch ciągów jest równa jeden. W internecie pod tym hasłem masz mnóstwo rozwiązań
#duolingo
Tak.