Подскажите пожалуйста, где в коде ошибка? Даю 90 балов
Задача №111314. Самое длинное слово
Дана строка. Найдите в этой строке самое длинное слово и выведите его. Если в строке несколько слов одинаковой максимальной длины, выведите первое из них. Решение оформите в виде функции LongestWord (S), возвращающей значение типа str.
Примеры
входные данные
In a hole in the ground there lived a hobbit.
выходные данные
ground
Приложения:
fanforschool:
Но все равно, балов за задачу уже больше, но есть одна ошибка, что при каком то условии она не справляется со временем. Делает слишком долго
такс, давай думать дальше...
а ты добавил проверку на пустую строку?
Да
хм...
наверное всё что я могу ещё посоветовать это стрипать (удалять с начала и с конца строки лишнии символы) строку:
import string
trans = str.maketrans({p: ' ' for p in string.punctuation.replace('-', '')})
striping = string.punctuation+string.whitespace
def Looong(s):
s = s.strip(striping)
return max(s.translate(trans).split(), key=len) if s else ''
print(Looong(input()))
trans = str.maketrans({p: ' ' for p in string.punctuation.replace('-', '')})
striping = string.punctuation+string.whitespace
def Looong(s):
s = s.strip(striping)
return max(s.translate(trans).split(), key=len) if s else ''
print(Looong(input()))
string.whitespace - это невидимые символы, такие как пробел.
+ можно, захардкодить значения punctuation и whitespace, и не придется импортировать string
punctuation = '!"#$%&\'()*+,./:;<=>?@[\\]^_`{|}~'
trans = str.maketrans({p: ' ' for p in punctuation})
striping = punctuation+' \t\n\r\x0b\x0c'
def Looong(s):
s = s.strip(striping)
return max(s.translate(trans).split(), key=len) if s else ''
print(Looong(input()))
trans = str.maketrans({p: ' ' for p in punctuation})
striping = punctuation+' \t\n\r\x0b\x0c'
def Looong(s):
s = s.strip(striping)
return max(s.translate(trans).split(), key=len) if s else ''
print(Looong(input()))
Ответы
Ответ дал:
1
Python
import re
def LongestWord(s):
s=re.sub(r'[^\w\s]','', s)
s=s.split()
return max(s, key=len)
print(LongestWord(input()))
Вас заинтересует
2 года назад
2 года назад
8 лет назад
9 лет назад