Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

ИНФОРМАТИКА СРОЧНО уважение тому кто сделает огромное

snoopgo Ученик (96), на голосовании 2 месяца назад
постарайтесь максинально компактный код сделать



В предложении необходимо найти самое короткое и самое длинное слово.
Формат входных данных
В первой строке содержится предложение, состоящее из слов,
разделенных пробелами. Каждое слово – это последовательность букв
английского алфавита. Слова могут отделяться друг от друга одним или
несколькими пробелами. Также один или несколько пробелов могут быть
как в начале, так и в конце предложения. Гарантируется, что в
предложении присутствует хотя бы два слова. Длина предложения может
быть от 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
(это таблица)
Пояснение
Чтобы лексикографически сравнить слова одинаковой длины, нужно
найти и отбросить максимальные совпадающие начала слов, после чего
сравнить первые из оставшихся букв. Меньшим будет слово, у которого
эта буква встречается раньше в алфавите. При этом любая строчная
(маленькая) буква считается лексикографически больше любой заглавной
(большой) буквы.
Голосование за лучший ответ
Termit . Знаток (407) 3 месяца назад
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))
snoopgoУченик (96) 3 месяца назад
это пайтон?
snoopgoУченик (96) 3 месяца назад
и код выдает ошибку при запуске, проверьте пожалуйста на на грамотность
Termit .Знаток (407) 3 месяца назад
sentence = input().strip()
words = sentence.split()

shortest_word = min(words, key=len)
longest_word = max(words, key=len)

# compare words with equal length
if len(shortest_word) == len(longest_word):
shortest_word = min(shortest_word.lower() for shortest_word in words)
longest_word = min(longest_word.lower() for longest_word in words)

print(shortest_word)
print(longest_word)
Termit .Знаток (407) 3 месяца назад
это на пайтон
Termit .Знаток (407) 3 месяца назад
все норм работает?
snoopgo Ученик (96) Termit ., C:\Users\User\AppData\Local\Programs\Python\Python39\python.exe C:/Users/User/PycharmProjects/pythonProject/123.py File "C:\Users\User\PycharmProjects\pythonProject\123.py", line 9 shortest_word = min(shortest_word.lower() for shortest_word in words) ^ IndentationError: expected an indented block
snoopgoУченик (96) 3 месяца назад
все равно выдает ошибочку
sUnset man Искусственный Интеллект (967553) 3 месяца назад
это мы не проходили
snoopgoУченик (96) 3 месяца назад
сделай пожалуйста +rep
Похожие вопросы