Выполнение упражнения на CheckIO
и мне интересно, почему это не сработает. Учитывая набор строк, я пытаюсь вернуть True, если какая-либо из строк является суффиксом любой другой строки в наборе. В противном случае. Используя itertools, я сначала генерирую необходимые перестановки в кортежах. Тогда для каждого кортежа (каждый i) я хотел видеть трудный путь, если второй кортеж был в конце первого кортежа (опция 1). В другом случае использовалась функция .endwith (option2), но ни одна из них не будет работать для меня. Почему эти два варианта ошибочны?Python Определение суффикса в наборе строк
import itertools
def checkio(words_set):
for i in itertools.permutations(words_set, 2):
#option1 ---- if i[1] in i[0][-len(i[1]):]:
#option2 ---- if i[0].endswith(i[1]):
return True
else:
return False
примеры:
checkio({"hello", "lo", "he"}) == True
checkio({"hello", "la", "hellow", "cow"}) == False
Я знаю, что это работает в качестве ответа. Но просто интересно, почему мои оригинальные методы не возьмут.
def checkio(words_set):
for w1 in words_set:
for w2 in words_set:
if w1.endswith(w2) and w1 != w2:
return True
return False
Это упражнение, так что я просто предлагаю думая о сортировке. –