面試題5:替換空格
解題思路:
遍歷字串,求出公有多少個字元,和有多少個空格;
因為要將空格替換成「%20」,意味著乙個空格要增加兩個長度。
所以新的字元長度為 原有長度+空格長度*2;
這是乙個指標p1,放在久長度尾部,p2,放在新長度尾部。
將p1指向的字元移動到p2指向的位置,若字元為空格,則替換成「%20」,此時時間複雜度為o(n);
void replaceblank(char *c)
int newlen=oldlen+2*blanknum;//新長度
int p1=oldlen;//p1指向久尾部
int p2=newlen;//p2指向新尾部
while(p1!=p2)
else
}for(int i=0;icout
<}
}
面試題5 替換空格
方法 一 二 於牛客網 方法 三 四 於leecode 方法一 字串陣列class solution for int j length 1 j 0 j 方法二 字串陣列轉換成string,使用string成員函式 先轉為string,然後處理完成後再轉為const char 指向字串陣列的指標 但不...
面試題5 替換空格
題目 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 思路1 把字串儲存到陣列中處理,稍微麻煩一點。1 void replacespace char str,int length newlength oldlength 2 count if newlength length 長度超過總長...
面試題5 替換空格
1.考慮特殊輸入,空串 單空格 多空格,測試用例 2.考慮輸入字串無空格,測試用例 string 3.考慮正例輸入,字串前 中 後存在空格 單多空格 測試用例 hello world 1 str str.replace 20 對整個字串進行從左至右遍歷,遇到空格進行替換 若為字元陣列,需要向後移位,...