Я получил новый ответ, пытаясь задать вопрос URLify из Взломать интервью по кодированию книга. Мой ответ полностью отличается от подхода, показанного в книге.
Проблема
Возьмите строку, которая может содержать пробелы, и верните строку, в которой все последовательные пробелы заменены одним% 20.
Мое решение:
def URLfy(string):
result=""
prev = ''
for s in string.strip():
if s != ' ':
result += s
if s ==' ':
if prev == ' ':
continue
result += '%20'
last = s
return result
Временная сложность такая же т.е. $ mathcal {O} (n) $.
Может ли кто-нибудь проверить мое решение?
1 ответ
Если result += s
это операция с постоянным временем, она будет выполняться в $ O (п) $ время. В питоне это может быть правдой но я бы не стал на это полагаться.
Как указано в комментариях, в вашем коде есть ошибка. Протестируйте код перед его проверкой.