2 字符串:替换空格

血红的双手。 提交于 2020-02-24 13:57:56

1.2 字符串:替换空格

题目描述

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

class Solution {
public:
	void replaceSpace(char *str,int length) {
        if(length <= 0)  return ;
        if(str == nullptr) return ;
        
        int cnt = 0 ;  //统计空格个数,以便于推算最终数组大小
        
        for(int i = 0;i<length;i++)
        {
            if(str[i] == ' ')  cnt ++;
        }
        
        int num = length + cnt * 2 -1 ;
        for(int i = length-1 ;i >= 0 ;i--)
        {
            if(str[i] != ' ')  str[num--] = str[i];
            else  
            {
                str[num--] = '0';
                str[num--] = '2';
                str[num--] = '%';
            }
        }
	}
};

像这种替换一类的,

若少的替换成多的,那就对原来的数组从往前扩容后操作。

若多的替换成少的,那就从往后进行替换

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!