05 替換空格 python

2021-10-04 23:45:34 字數 913 閱讀 8656

def replace_space(s):

s = list(s)

l1 = len(s)

cnt = 0

if l1<1:

return none

for ss in s:

if ss == ' ':

cnt+=1

l2 = l1 + cnt*2

s.extend(['']*cnt*2)

i , j = l1-1, l2-1

while i>=0:

if s[i] != ' ':

s[j]=s[i]

i-=1

j-=1

else:

s[j-2:j+1]='%20'

i-=1

j-=3s = list(s)

l1 = len(s)

cnt = 0

if l1<1:

return none

for ss in s:

if ss == ' ':

cnt+=1

l2 = l1 + cnt*2

s.extend(['']*cnt*2)

i , j = l1-1, l2-1

while i>=0:

if s[i] != ' ':

s[j]=s[i]

i-=1

j-=1

else:

s[j-2:j+1]='%20'

i-=1

j-=3

注:由於python中不能直接在字串上操作,需要先轉為list。先遍歷一遍字串,統計空格的個數。然後擴充套件列表長度。用兩個指標,乙個指向字串最後乙個字元,乙個指向列表的最後乙個位置,從後往前遍歷,遇到非空格直接複製,遇到空格,附為「%20」。時間複雜度o(n)。

05 替換空格

限制 0 s 的長度 10000 1 看到此題第一反應是使用str.replace oldstr,newstr 但時間複雜度較高 2 另謀出路,將字串轉為字元陣列處理,挨個遍歷字元。新建乙個字元陣列用於儲存替換後的結果,長度為字串長度三倍 因為乙個空格替換為 20,也就是乙個字元替換為三個字元,極端...

05 替換空格

題目描述 解題思路有 判斷字串是否為空,判斷length是否大於0。記錄空格的數量,沒有空格直接返回原字串。1 考慮的問題 替換字串是在原字串上修改 a 還是新建字串修改 b 2 在當前字串替換,怎麼替換才更有效率 2 1從前往後替換,後面的字元要不斷往後移動,要多次移動,所以效率低下 在原字串改動...

替換空格 劍指Offer 05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 在python語言中,字串被設計成不可變型別,即無法直接修改字串的某一位字元,需要新建乙個字串實現。初始化乙個list 遍歷字串s中每個字元c,若c為空格,則在list中新增 20 若c不為空格,則在list中新增字元c。時間複雜度 o n 遍歷...