По текстовому условию нужно удалить только начальный prefix. Тогда 'Hello World' и 'World' дают 'Hello World', а не 'Hello': приведённый пример описывает удаление суффикса и противоречит условию.
Вычитание одной строки из другой
По текстовому условию нужно удалить только начальный prefix. Тогда 'Hello World' и 'World' дают 'Hello World', а не 'Hello': приведённый пример описывает удаление суффикса и противоречит условию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Реализуйте функцию, получающую на вход две строки — строку source и подстроку prefix. Если source начинается с prefix, функция должна вернуть source без этого начального фрагмента; в противном случае вернуть source без изменений. Пример: входные данные «Hello World» и «World» → результат «Hello».
Ответ
По текстовому условию нужно удалить только начальный prefix. Тогда 'Hello World' и 'World' дают 'Hello World', а не 'Hello': приведённый пример описывает удаление суффикса и противоречит условию.
Реализация буквального требования:
def subtract_prefix(source, prefix):
if source.startswith(prefix):
return source[len(prefix):]
return source
В Python 3.9+ аналогично работает source.removeprefix(prefix). Пустой prefix оставляет строку без изменения. Чтобы получить 'Hello' из примера, надо отдельно договориться об удалении суффикса ' World' либо удалении 'World' с последующим удалением пробела. Нельзя незаметно смешивать эти правила с удалением префикса.