题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。牛客网oj地址
样例
| 输入:"We are happy."
输出:"We%20are%20happy."
|
解题思路
这个题默认char字符串数组是提供充足的空间的,刚第一下看题没反应过来:wlk:。具体的解题思路是先遍历一遍数组得到将空格转换后的数组的长度,然后使用双指针法从后往前进行替换,具体思路见代码和注释。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution { public: void replaceSpace(char *str,int length) { int realLength=length; for (int i = 0; i < length; ++i) { if(str[i]==' ') realLength+=2; } int i=length-1,j=realLength-1; while (i>=0){ if(str[i]!=' '){ str[j--]=str[i]; } else{ str[j--]='0'; str[j--]='2'; str[j--]='%'; } --i; } } };
|