помогите что не так с кодом
нужно составить алгоритм на python который проверяет можно ли из элементов СТРОКИ n получить строку p путем перестановки или склеивания например:
n = привет
p = прив
ответ: да
у меня на выходе пишет нет
from itertools import *
a = str(input())
b = str(input())
s = len(b)
for i in permutations(a, s):
if i == b:
print('да')
else:
print('нет')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Исправил ваш код, теперь правильно ответ выдаёт (ввод можете раскомментировать, это просто пример работы):
from itertools import permutations
a = 'привет' # input()
b = tuple('прив') # tuple(input())
s = len(b)
for i in permutations(a, s):
if i == b:
print('да')
break
else:
print('нет')
Суть в том, что сравнивать нужно одинаковые сущности. В данном случае permutations выдаёт кортежи, их и нужно сравнивать, для этого вторую строку я перевёл тоже в кортеж. Ну и else должно быть не на каждой итерации цикла, а после цикла, если ни разу не сработал break.