Вывести слова которые можно составить из букв первого слова строки
«Циклический сдвиг строки» Вводятся строки слов, з...
«Циклический сдвиг строки» Вводятся строки слов, з...
«Циклический сдвиг строки»
Вводятся строки слов, записанных через пробел.
В каждой строке первое слово — исходное, остальные слова для проверки.
Формат вывода
Для каждой строки вывести в порядке уменьшения длины (в случае одинаковой — в порядке ввода) слова, которые можно составить из букв первого слова в этой строке.
Обязательно читай данные через sys.stdin.
Ввод
celebrity berry belle celeb cryt belt byre
carousel alert arena cruse cruel area arse care
argumentation grum art argument enter eater temp rudiment eager
Вывод
celeb cryt belt byre
cruse cruel arse care
argument grum art
Вот готовое решение на Python, полностью соответствующее условиям задачи:
import sys
from collections import Counter
def solve():
# Читаем все строки из stdin
lines = sys.stdin.read().splitlines()
for line in lines:
words = line.strip().split()
if not words:
continue
source = words[0]
source_counts = Counter(source)
# Проверяем каждое оставшееся слово
valid = []
for idx, word in enumerate(words[1:], start=1):
word_counts = Counter(word)
# Условие: все буквы слова должны присутствовать в source нужным количеством раз
if all(source_counts[ch] >= cnt for ch, cnt in word_counts.items()):
valid.append((idx, word))
# Сортировка: убывание длины, при равенстве длин сохранение порядка ввода (idx)
valid.sort(key=lambda x: (-len(x[1]), x[0]))
# Формируем вывод для текущей строки
print(' '.join(word for _, word in valid))
if __name__ == '__main__':
solve()
Counter позволяет работать с мультимножествами. Сравнение source_counts[ch] >= cnt гарантирует, что во втором слове нет букв, которых не хватает в первом, и не превышено их количество.(idx, word) вместе с ключом (-len(word), idx) обеспечивают требуемый порядок: сначала по убыванию длины, а при совпадении длин слова остаются в том же порядке, в котором были введены.sys.stdin, как указано в условии.if not words: continue предотвращает ошибки при наличии лишних переносов строк в конце ввода.Если задача подразумевает чувствительность к регистру или обработку специальных символов/апострофов, уточните детали — быстро адаптирую код. Удачи с отправкой решения! 🚀