[劍指offer] 2. 替換空格
阿新 • • 發佈:2018-11-30
desc %20 字符數 題目 app otto 位數 實現 替換空格
思路: 字符數組插入,就是考慮插入位後面的移動。考慮從後往前插入,才能移動最少的位數。 遍歷一遍記錄需要插入的次數,根據剩余插入次數來移動元素。
題目描述
請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之後的字符串為We%20Are%20Happy。思路: 字符數組插入,就是考慮插入位後面的移動。考慮從後往前插入,才能移動最少的位數。 遍歷一遍記錄需要插入的次數,根據剩余插入次數來移動元素。
class Solution { public: void replaceSpace(char *str, int length) { int spaceNUms = 0; for (int i = 0; i < length; i++) {if (str[i] == ‘ ‘) { ++spaceNUms; } } for (int j = length - 1; j >= 0; j--) { if (str[j] != ‘ ‘) str[j + 2 * spaceNUms] = str[j]; else { --spaceNUms; str[j + 2 * spaceNUms] = ‘%‘; str[j + 2 * spaceNUms + 1] = ‘2‘; str[j+ 2 * spaceNUms + 2] = ‘0‘; } } } };
[劍指offer] 2. 替換空格