請實現乙個函式,把字串 s 中的每個空格替換成"%20"。
示例 1:
限制:
0 <= s 的長度 <= 10000暴力解答:構建乙個長度為s.length()*3的陣列,乙個字元乙個字元比較,如果為空字元,則陣列依次增加』%』『2』'0』三個字元,再繼續比較其他的字元。最後再構建乙個以替換成功的字元陣列為元素的字串。
class
solution
else
}//step3:以替換成功的字元陣列構建字串
string ret1 =
newstring
(ret,
0, size)
;//step4:返回結果
由於字串的長度不能動態變化,stringbuilder類可以動態變化,因此可以設定乙個結果變數為stringbuider類stringbuilder ret = new stringbuilder()。函式返回值型別是string,因此結果變數在返回時需呼叫ret.tostring();。在遍歷時可以使用增強for迴圈,for(元素資料型別 變數:陣列或者collection集合),呼叫string.tochararray()函式將字串變為陣列。
class
solution
else
}//step3:返回結果變數
劍指Offer 面試題5替換空格
note 劍指offer的題可以在牛客網上做題驗證思路的正確性 思路 因為stringbuffer本身是可變字串序列,可以修改,實際上它的可變是犧牲空間換取的。替換可能導致超出其容量,char陣列的複製和新建。public string replacespace stringbuffer str s...
劍指offer 面試題5 替換空格
拿到這個題時,第乙個要考慮的就是記憶體夠不夠的問題。因為原來空格是乙個字元,現在要將乙個空格替換為三個字元,記憶體會變大。現在假設是在記憶體足夠的情況下修改。過程如下 完成乙個空格的替換 完成替換 測試用例的考慮 如下 void changestr char arr,int sz int i 0 i...
劍指offer面試題5 替換空格
面試題5 替換空格 思路一 新建乙個足夠的大小的字串空間,然後依次將字元拷貝,遇到空格進行三個字元的填充,接著重複執行前面的操作將整個字串替換完畢。時間複雜度o n 空間複雜度o n 思路二 從頭到尾掃瞄字串,每次遇到空格將後續字元向後移動兩個位置,然後進行填充。時間複雜度o n 2 思路三 從尾部...