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

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

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



В предложении необходимо найти самое короткое и самое длинное слово.
Формат входных данных
В первой строке содержится предложение, состоящее из слов,
разделенных пробелами. Каждое слово – это последовательность букв
английского алфавита. Слова могут отделяться друг от друга одним или
несколькими пробелами. Также один или несколько пробелов могут быть
как в начале, так и в конце предложения. Гарантируется, что в
предложении присутствует хотя бы два слова. Длина предложения может
быть от 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 . Знаток (462) 1 год назад
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) 1 год назад
это пайтон?
snoopgoУченик (96) 1 год назад
и код выдает ошибку при запуске, проверьте пожалуйста на на грамотность
Termit .Знаток (462) 1 год назад
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 .Знаток (462) 1 год назад
это на пайтон
Termit .Знаток (462) 1 год назад
все норм работает?
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) 1 год назад
все равно выдает ошибочку
sUnset man Искусственный Интеллект (1120723) 1 год назад
это мы не проходили
snoopgoУченик (96) 1 год назад
сделай пожалуйста +rep
Похожие вопросы