題目描述
請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後的字符串爲We%20Are%20Happy。
解法
還以爲直接來個for遍歷的同時來個輸出就可以了,原來是要在原字符串上面修改啊,那就計算一下替換過後的字符串長度,然後,從後到前替換,避免覆蓋。
code
int cnt = 0;
for(int i=0; i<length; i++)
if (str[i] == ' ')
cnt++;
int ll = length+cnt*2; // 替換之後的字符串長度
str[ll--]='\0'; //結尾符號
--length;
while(length >=0 && ll > length ){
if(str[length] == ' '){
str[ll--] = '0';
str[ll--] = '2';
str[ll--] = '%';
}
else
str[ll--]= str[length];
length--;
}
java的寫法更是簡單
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replaceAll(" ","%20");
}
}
但是:
答案正確(提交異常):答案正確,但系統檢測你的代碼與已有通過的代碼相似度過高。
這就沒辦法了。