def replace_space(s):
s = list(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-=3
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 遍歷...