替換空格
請實現乙個函式,把字串 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...