題目描述
請實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的每個(gè)空格替換成“%20”。例如,當(dāng)字符串為We Are Happy.則經(jīng)過替換之后的字符串為We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
? ? ? ? int spacenum=0;
? ? ? ? for(int i=0;i<length;i++)
? ? ? ? {
? ? ? ? ? ? if(str[i]==' ')
? ? ? ? ? ? ? ? spacenum++;
? ? ? ? }
? ? ? ? int newlength=spacenum*2+length;
? ? ? ? while(length>0)
? ? ? ? {
? ? ? ? ? ? if(str[--length]==' ')
? ? ? ? ? ? {
? ? ? ? ? ? ? ? str[--newlength]='0';
? ? ? ? ? ? ? ? str[--newlength]='2';
? ? ? ? ? ? ? ? str[--newlength]='%';
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? str[--newlength]=str[length];
? ? ? ? ? ? }
? ? ? ? }
}
};
關(guān)鍵是從后往前遍歷,這樣就可以使用同一個(gè)數(shù)組而不用擔(dān)心覆蓋問題。