Поделитесь своими знаниями, ответьте на вопрос:
Задача №1743. Шифровка Петя и Вася обменивались шифрованными сообщениями. Они брали некоторое слово, записанное маленькими латинскими буквами и переставляли в нем буквы. Антон перехватил одну из шифровок. У него есть несколько гипотез о том, что могло содержаться в шифровке. Выведите те слова из списка Антона, шифром которых может являться перехваченное сообщение. Входные данные В первой строке вводится текст перехваченного сообщения. Во второй строке записано число N — количество слов – гипотез Антона (1≤N≤100 В следующих N строках записаны сами слова. Каждое слово (как перехваченная шифровка, так и слова – гипотезы Антона) состоит только из маленьких латинских букв и имеет длину не более 200 символов. Выходные данные Выведите те слова – гипотезы, в результате шифрования которых могло получиться перехваченное сообщение. Слова должны быть выведены в том же порядке, в каком они вводятся. Если ни одно слово не подходит, не нужно выводить ничего. Примеры входные данные aamm 4 mama papa amam am выходные данные mama amam входные данные qwerty 1 qwerty выходные данные qwerty Язык программирования pascal или python
Алгоритм:
1) Считываем входные данные. Перехваченную шифровку записываем в переменную encoded, количество гипотез Антона в переменную N, а сами гипотезы в переменную assumptions.
2) Сортируем буквы в перехваченной шифровке, сохраняем получившийся список в переменную encoded_sorted.
3) Проходимся циклом по всем гипотезам, во время каждой итерации сортируем буквы в гипотезе и сверяем с encoded_sorted. В случае если равно, гипотеза верна => выводим.
Код на Python:
encoded = input()
N = int(input())
assumptions = [input() for _ in range(N)]
encoded_sorted = sorted(encoded)
for assumption in assumptions:
if sorted(assumption) == encoded_sorted:
print(assumption)