劍指offer:替換空格

題目描述

請實現一個函數,將一個字符串中的空格替換成“%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");
    }
}

但是:

答案正確(提交異常):答案正確,但系統檢測你的代碼與已有通過的代碼相似度過高。

這就沒辦法了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章