Add algocode two pointers solution
This commit is contained in:
parent
3544829d92
commit
c90a267b68
1 changed files with 51 additions and 0 deletions
51
algocode/two_pointers/urlify.py
Normal file
51
algocode/two_pointers/urlify.py
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
"""
|
||||||
|
Дан список s, представляющий URL-адрес (буквы и пробелы). Нужно заменить все пробелы в первых k символах на %20, используя свободное место в конце списка и вернуть изменённый список s в качестве ответа.
|
||||||
|
|
||||||
|
Пример 1:
|
||||||
|
|
||||||
|
Ввод: s = ["h","e","l","l","o"," ","w","o","r","l","d","#","#"], k = 11
|
||||||
|
Вывод: ["h","e","l","l","o","%","2","0","w","o","r","l","d"]
|
||||||
|
Пример 2:
|
||||||
|
|
||||||
|
Ввод: s = ["a"," ","b"," ", " ", "c","#","#","#","#","#","#"], k = 6
|
||||||
|
Вывод: ["a","%","2","0","b","%","2","0","%","2","0", "c"]
|
||||||
|
Ограничения:
|
||||||
|
|
||||||
|
len(s) >= 1
|
||||||
|
"""
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
def solve(s: List[str], k: int) -> List[str]:
|
||||||
|
fast = len(s) - 1
|
||||||
|
slow = k - 1
|
||||||
|
while slow >= 0:
|
||||||
|
# Если у нас не пробел
|
||||||
|
if not s[slow] == " ":
|
||||||
|
s[fast] = s[slow]
|
||||||
|
fast -= 1
|
||||||
|
slow -= 1
|
||||||
|
# Если пробел
|
||||||
|
else:
|
||||||
|
s[fast] = "0"
|
||||||
|
s[fast-1] = "2"
|
||||||
|
s[fast-2] = "%"
|
||||||
|
fast -= 3
|
||||||
|
slow -= 1
|
||||||
|
print(s)
|
||||||
|
|
||||||
|
|
||||||
|
solve(s = ["h","e","l","l","o"," ","w","o","r","l","d","#","#"], k = 11)
|
||||||
|
# Вывод: ["h","e","l","l","o","%","2","0","w","o","r","l","d"]
|
||||||
|
|
||||||
|
solve(s = ["a"," ","b"," ", " ", "c","#","#","#","#","#","#"], k = 6)
|
||||||
|
# Вывод: ["a","%","2","0","b","%","2","0","%","2","0", "c"]
|
||||||
|
|
||||||
|
# 0 1 2 3 4 5 6 7 8 9 10 11 12
|
||||||
|
# "h","e","l","l","o"," ","w","o","r","l","d","#","#"
|
||||||
|
# s f
|
||||||
|
#
|
||||||
|
# 0 1 2 3 4 5 6 7 8 9 10 11 12
|
||||||
|
# "a"," ","b"," "," ","c","#","#","#","#","#","#"
|
||||||
|
# s
|
||||||
|
|
||||||
|
|
||||||
Loading…
Reference in a new issue