面試題5 替換空格

2021-08-15 07:29:15 字數 497 閱讀 9090

面試題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 對整個字串進行從左至右遍歷,遇到空格進行替換 若為字元陣列,需要向後移位,...