限制:
0 <= s 的長度 <= 10000
1、看到此題第一反應是使用str.replace(oldstr,newstr),但時間複雜度較高;
2、另謀出路,將字串轉為字元陣列處理,挨個遍歷字元。新建乙個字元陣列用於儲存替換後的結果,長度為字串長度三倍(因為乙個空格替換為%20,也就是乙個字元替換為三個字元,極端情況下,新陣列最大長度為字串三倍),如果字元為空格,替換為%20,不為空格則存原值,其中size表示新陣列中的下標,由於size++,最終的size為新陣列長度。最後取出新陣列中的有效值(下標:0~size-1)。
class
solution
else
} string str =
newstring
(array,
0,size)
;return str;
}}
ps:
1、字串用雙引號「」,字元用單引號『』
2、字串和字元陣列之間的轉換:
tochararray() 方法將字串轉換為字元陣列;
string str = new string(array,0,size)字元陣列轉為字串;
05 替換空格
題目描述 解題思路有 判斷字串是否為空,判斷length是否大於0。記錄空格的數量,沒有空格直接返回原字串。1 考慮的問題 替換字串是在原字串上修改 a 還是新建字串修改 b 2 在當前字串替換,怎麼替換才更有效率 2 1從前往後替換,後面的字元要不斷往後移動,要多次移動,所以效率低下 在原字串改動...
05 替換空格 python
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 ...
替換空格 劍指Offer 05 替換空格
請實現乙個函式,把字串 s 中的每個空格替換成 20 在python語言中,字串被設計成不可變型別,即無法直接修改字串的某一位字元,需要新建乙個字串實現。初始化乙個list 遍歷字串s中每個字元c,若c為空格,則在list中新增 20 若c不為空格,則在list中新增字元c。時間複雜度 o n 遍歷...