помогите что не так с кодом

Рейтинг: -2Ответов: 1Опубликовано: 27.02.2023

нужно составить алгоритм на 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('нет')

Ответы

▲ 0

Исправил ваш код, теперь правильно ответ выдаёт (ввод можете раскомментировать, это просто пример работы):

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.