02char字符与字符串替换,双指针,从后往前
Posted jun10ng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了02char字符与字符串替换,双指针,从后往前相关的知识,希望对你有一定的参考价值。
PRE
给了两种,一个参数为char(较难),一个参数为string,用内置函数就行。
题目
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
由于这题给的参数是char指针,不能直接使用string的replace方法,但是参考他人题解,发现了一个比较巧妙的双指针,不额外创建字符串的方法。
收获
双指针,指针1指向原串末尾,指针2只想原串扩充之后的末尾,然后共同递减,当指针1==指针2的时候,说明替换成功了,因为只有不存在空格的情况下,双指针才能重叠。
代码
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str==NULL) return ;
int CountOfSpace = 0;
int OriginSize = 0;
for(int i = 0;str[i]!='