劍指offer 面試題05 替換空格為20

2021-10-03 12:58:06 字數 833 閱讀 9580

替換空格

請實現乙個函式,把字串 s 中的每個空格替換成"%20"。

示例 1:

限制:0 <= s 的長度 <= 10000

解題思路:

1.利用c++11 以後遍歷容器的方法 for(auto a:s) ,res 為新建的string

class solution 

return res;}}

;

2.一般像這種需要向後擴充容量重新整理記憶體的,最好能夠考慮到從尾部開始整理的方法

1.指標都可以當作陣列使用,但是指標本身不檢查是否超出陣列範圍。

2.對字串的處理都應該考慮最後的空字元』\0』。

3.應該乙個乙個的處理字串中的字元,不要向一蹴而就。

4.擴充字串可以考慮從尾部開始。

5.應該警惕記憶體覆蓋,如果改變字串會導致字串變長,那應該考慮記憶體的問題

從尾部開始擴充套件倒置

#include

#include

using namespace std;

void

replacespace

(char

*str,

int length)

int end = orginalcnt +

2* spacecnt;

if(end+

1> length)

str[end--]=

'\0'

;for

(int i = orginalcnt-

1; i >=

0; i--

)else

}}

劍指Offer 面試題05替換空格

劍指offer面試題彙總 題目描述 請實現乙個函式,把字串s中的每個空格替換成 20 輸入輸出 解決方案 直接替換 return s.replace 20 不符合題意,題目想說的是用char陣列怎麼實現 雙指標 先計算空格數量 建立乙個新陣列容量加上空格替換字串的長度 p1指向字串尾部 p2指向陣列...

劍指Offer 面試題05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000 暴力方法,從前向後遍歷,遇到空格就替換,則每次替換需要移動空格後面o n 個字元,所以總時間複雜度為o n 2 我們可以先計算出空格數,然後可得替換後新串總長度,設兩個指標i和j分別指向原來字串末尾和新...

劍指offer面試題 替換空格

題目 請實現乙個函式,把字串中的每個空格替換成 20 例如輸入 則輸出 解析 時間複雜度為o n 的解法。完整 及測試用例實現 cpp view plain copy include using namespace std include length 為字元陣列string的總容量 void re...