#python
#python
Вопрос:
Фанни присваивается строка вместе со строкой, которая содержит один символ x. Она должна удалить символ x из заданной строки. Помогите ей написать функцию для удаления всех вхождений символа x из заданной строки. Спецификация ввода:
Ввод 1: входные строки
Ввод 2: строка, содержащая любой символ x
Спецификация вывода:
Строка без появления символа x
Пример 1:
Ввод:
добро пожаловать в mettl
l
Вывод:
мы пришли к метту
Объяснение: Поскольку I является символом, который требуется удалить, поэтому все вхождения I удаляются, сохраняя все остальные символы.
Пример 2:
ввод1: у меня нет колец
Ввод2: o
Вывод: у меня есть f колец
МОЕ решение:
def extractSecretMessage(Str, Sub):
Str= Str.replace(Sub, " ")
return Str.strip()
Str = input("")
Sub = input("")
print(extractSecretMessage(Str, Sub))
ОШИБКА:
Ввод (стандартный код)
Тамиларасан гуна — ваш вывод (стандартный вывод)
Ожидаемый результат от T mil r s n gun
Сообщение компилятора Tmilrsn gun
Хорошая попытка, но вы не прошли тестовый пример!
Комментарии:
1. Но в чем вопрос?
2. Фанни присваивается строка вместе со строкой, которая содержит один символ x. Она должна удалить символ x из заданной строки. Помогите ей написать функцию для удаления всех вхождений символа x из заданной строки. Спецификация ввода: Ввод 1: строка ввода s Ввод 2: строка, содержащая любой символ x Спецификация вывода: строка без появления символа x Пример 1: Ввод: добро пожаловать в mettl l Вывод: мы приходим в mett
3. Нет, в чем ваш вопрос. StackOverflow — это не место для «создания задачи для меня».
4. Первые два тестовых примера пройдены, но третий показывает ошибку. Ввод (стандартный код): Тамиларасан гуна ваш вывод (стандартный вывод) Ожидаемый результат T mil r s n gun — Tmilrsn gun — Tmilrsn gun
Ответ №1:
Проблема в том, что когда вы должны удалить символ, вы заменяете его пробелом, тогда как вы должны заменить его пустой строкой.
Другая потенциальная проблема (хотя и не раскрыта в этих примерах) заключается в том, что вы вызываете strip()
(который удалит начальные и конечные пробелы), когда в спецификации не указано, что вы должны это делать. (В некоторых случаях это может маскировать предыдущую ошибку, если пробел, который вы ошибочно добавили, был в начале или конце строки.)
Где у вас есть:
Str= Str.replace(Sub, " ")
return Str.strip()
вы должны использовать:
Str= Str.replace(Sub, "")
return Str
или просто:
return Str.replace(Sub, "")