Разбейте предложение на слова, возьмите первые limit и соедините пробелами. При limit=0 результат пустой; если limit больше числа слов, вернутся все слова.
Обрезка строки до заданного количества слов
Разбейте предложение на слова, возьмите первые limit и соедините пробелами. При limit=0 результат пустой; если limit больше числа слов, вернутся все слова.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дано предложение sentence, представляющее собой строку из слов, разделённых пробелами, и целое число limit. Требуется сократить предложение так, чтобы в нём остались только первые limit слов. Верните получившуюся строку.
Пример 1: Ввод: sentence = "Hello how are you today", limit = 4 Вывод: "Hello how are you" Объяснение:
- Исходное предложение: "Hello how are you today" (5 слов).
- Берём первые 4 слова: "Hello how are you".
- Результат: "Hello how are you".
Пример 2: Ввод: sentence = "What is the weather like", limit = 3 Вывод: "What is the" Объяснение:
- Исходное предложение: "What is the weather like" (5 слов).
- Берём первые 3 слова: "What is the".
- Результат: "What is the".
Пример 3: Ввод: sentence = "chopper is not a tanuki", limit = 5 Вывод: "chopper is not a tanuki" Объяснение:
- Исходное предложение: "chopper is not a tanuki" (5 слов).
limitравно количеству слов, поэтому возвращаем полное предложение.
Ответ
Разбейте предложение на слова, возьмите первые limit и соедините пробелами. При limit=0 результат пустой; если limit больше числа слов, вернутся все слова.
Простой вариант:
def truncate_sentence(sentence, limit):
if type(limit) is not int or limit < 0:
raise ValueError('Expected non-negative integer')
return ' '.join(sentence.split()[:limit])
Он даёт результаты из примеров и нормализует любые серии пробельных символов в одиночные пробелы. Если нужно сохранить исходные пробелы и форматирование буквально, вместо split/join следует искать границу нужного слова в исходной строке. Это отдельное требование, отсутствующее в задаче.