


ИНФОРМАТИКА СРОЧНО уважение тому кто сделает огромное
постарайтесь максинально компактный код сделать
В предложении необходимо найти самое короткое и самое длинное слово.
Формат входных данных
В первой строке содержится предложение, состоящее из слов,
разделенных пробелами. Каждое слово – это последовательность букв
английского алфавита. Слова могут отделяться друг от друга одним или
несколькими пробелами. Также один или несколько пробелов могут быть
как в начале, так и в конце предложения. Гарантируется, что в
предложении присутствует хотя бы два слова. Длина предложения может
быть от 1 до 106 символов.
Формат выходных данных
В первой строке выведите слово из заданного предложения, состоящее из
наименьшего количества букв. Если таких слов несколько, выведите
лексикографически наибольшее из них. Во второй строке следует вывести
слово, состоящее из наибольшего числа букв. Если таких слов несколько,
выведите лексикографически наименьшее из них.
Примеры
№ входные данные выходные данные
1 one two two
one
2 the pen is mightier than the sword is
mightier
3 No Man IS an IsLand an
IsLand
4 ab Ab AB aB ab
AB
(это таблица)
Пояснение
Чтобы лексикографически сравнить слова одинаковой длины, нужно
найти и отбросить максимальные совпадающие начала слов, после чего
сравнить первые из оставшихся букв. Меньшим будет слово, у которого
эта буква встречается раньше в алфавите. При этом любая строчная
(маленькая) буква считается лексикографически больше любой заглавной
(большой) буквы.
s = input().strip()
words = s.split()
min_length = float('inf')
max_length = 0
for word in words:
length = len(word)
if length < min_length:
min_length = length
shortest_word = [word]
elif length == min_length:
shortest_word.append(word)
if length > max_length:
max_length = length
longest_word = [word]
elif length == max_length:
longest_word.append(word)
shortest_word.sort(reverse=True)
longest_word.sort()
print(" ".join(shortest_word))
print(" ".join(longest_word))
это мы не проходили