【死磕演算法·字串問題】空格替換
阿新 • • 發佈:2018-12-22
題目大意:
給定字串str,將字串內所有空格更換為“%20”。假設str後面有足夠的空間容納替換後的字串。
思路:
1、遍歷字串得到空格個數n,進而得到替換後的字串長度。如原字串長度為l,替換後的字串長度為l+2*n
2、替換後的字串最後一個索引是l+2*n-1,從右往左賦值新字串。
如
class Replacement { public: string replaceSpace(string iniString, int length) { // write code here int spacenum = 0; for(int i = 0;i<length;i++){ if(iniString[i]==' ') spacenum++; } int newlength= length + spacenum*2; iniString.resize(newlength);//注意要重新設定string的大小 int i = newlength-1; while(i>=0){ if(length>=1){ if(iniString[--length]!= ' ') iniString[i--] = iniString[length]; else{ iniString[i--] = '0'; iniString[i--] = '2'; iniString[i--] = '%'; } } } return iniString; } };
注意:
1、用resize()擴充套件string長度
2、此題相當於實現string中的replace函式