Вопрос Как решить эту задачу по python?

Регистрация
9 Сен 2013
Сообщения
91
Репутация
-3
Спасибо
0
Монет
0
Условие задачи:

Вашей программе на вход даются 3 строки. Выведите обратно строку наименьшей длины. В случае, если длина у нескольких строк совпадает – выведите ту, которая была введена позже остальных.

С кодом.
 
def find\_shortest\_string(strings):
shortest\_length = float('inf')
shortest\_string = None

for string in strings:
if len(string) < shortest\_length:
shortest\_length = len(string)
shortest\_string = string
elif len(string) == shortest\_length:
shortest\_string = string

return shortest\_string

strings = input().split()
shortest = find\_shortest\_string(strings)
print(shortest) А вообще я дам тебе совет, если есть тг используй в нем чатбота от сбербанка (@gigachat_bot)
 
strings = []
for i in range(3):
strings.append(input(f'{i + 1} строка: '))
print(min(reversed(strings), key = len))
 
Имхо так: s = []
#Вашей программе на вход даются 3 строки.
for i in range(0, 3):
s.append(input("Введите строку:"))

#Выведите обратно строку наименьшей длины.
#В случае, если длина у нескольких строк совпадает – выведите ту,
#которая была введена позже остальных.
s.sort(key=lambda l: len(l))
print(s[0])
 
# Вводим три строки
str1 = input()
str2 = input()
str3 = input()

# Создаем список из трех строк
strings = [str1, str2, str3]

# Сортируем список по длине строк и затем по порядку ввода
strings.sort(key=lambda x: (len(x), strings.index(x)))

# Выводим строку наименьшей длины
print(strings[0])
 
Назад
Сверху