[劍指offer] 替換空格
阿新 • • 發佈:2017-11-25
sub 題目 tom desc ces describe 劍指offer -- style
題目描述
請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。
剛開始用replace實現了一個replaceAll結果超時。。所以還是直接操作吧:
先求出新的長度然後從後往前遍歷替換。
我的代碼:
class Solution { public: void replaceSpace(char *str,int length) { int countBlank = 0; for (int i = 0; i < length; i++) {if (str[i] == ‘ ‘) countBlank++; } int newLength = length + 2 * countBlank; int strPos = length; for (int i = newLength; i >= 0; i--, strPos--) { if (str[strPos] == ‘ ‘) { str[i--] = ‘0‘; str[i--] = ‘2‘; str[i]= ‘%‘; } else str[i] = str[strPos]; } } };
[劍指offer] 替換空格