Top.Mail.Ru
Ответы

Помогите решить задачу на питоне

Корабль тихо приземлился на краю вырубки, в сотне ярдов от деревни.
Он появился совершенно внезапно, но без лишней шумихи. Интеллигентно. Только что стоял пригожий осенний денек: листья едва-едва начинали краснеть и желтеть, река вновь поднялась после выпавших в северных горах дождей, птички-пикка оделись в пышные перья – дело к зиме. Короче, денек был вроде пригожий, и вдруг на краю вырубки, блестя на теплом осеннем солнце металлическими боками, опустился космический корабль.

Напишите программу для поиска чего-то неожиданного. То есть в каждой введённой строке нужно найти слово, которое в ней повторяется ровно два раза. Или все такие слова, если их больше одного. Собрать такие слова из всех строк и вывести через точку с запятой и пробел без повторений в произвольном порядке.

Формат ввода
Вводятся строки слов, записанных через пробел.

Формат вывода
Выведите найденные слова, как описано в условии.


Пример 1
Ввод Вывод
It had just been a nice autumn day nice weather nice warm day
the leaves were barely beginning to turn
red and yellow yellow and red
the river had risen again after the rains
and; day; red; the; yellow
Пример 2
Ввод Вывод
The ship landed quietly on the edge on the ship parking
a hundred yards from the village
He appeared quite suddenly suddenly
but without too much fuss
Intelligent
on; ship; suddenly; the

По дате
По Рейтингу
Аватар пользователя
Новичок
9мес

Что тут решать? Всё пишется за 5 минут.

123456789
 from sys import stdin
from itertools import chain
from collections import Counter

def getrep2(s):
    return (w for w, c in Counter(s.rstrip().split()).items() if c == 2)

a = set(chain.from_iterable(map(getrep2, stdin)))
print(*a, sep='; ') 


Если вводишь с клавиатуры, то конец ввода - в Unix Ctrl-D на отдельной строке, в Windows Ctrl-Z и Enter.

Или так:

12
 from sys import stdin; from itertools import chain; from collections import Counter
print(*set(chain.from_iterable(map(lambda s: (w for w, c in Counter(s.rstrip().split()).items() if c == 2), stdin))), sep='; ') 
Аватар пользователя
Мастер
9мес

студенты яндекс лицея би лайк

Аватар пользователя
Знаток
9мес

from sys import stdin
from itertools import chain
from collections import Counter

def getrep2(s):
return (w for w, c in Counter(s.rstrip().split()).items() if c == 2)

a = set(chain.from_iterable(map(getrep2, stdin)))
print(*a, sep='; ')