200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 剑指 Offer 05. 替换空格 简单

剑指 Offer 05. 替换空格 简单

时间:2020-05-12 12:23:28

相关推荐

剑指 Offer 05. 替换空格  简单

剑指 Offer 05. 替换空格

问题:思路:1. 方法(一):使用额外空间2. 在原空间上扩展,利用双指针。

问题:

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:输入:s = "We are happy."输出:"We%20are%20happy."

思路:

1. 方法(一):使用额外空间

代码:

class Solution {public:string replaceSpace(string s) {string res="";for(auto c:s){if(c==' '){// res.push_back('%');// res.push_back('2');// res.push_back('0');res+="%20";}else// res.push_back(c);res+=c;}return res;}};

2. 在原空间上扩展,利用双指针。

代码:

class Solution {public:string replaceSpace(string s) {int count=0;int length=s.length(); //s的原长度for(int i=0;i<length;i++){if(s[i]==' ') count++;}int new_length=length+count*2; //要输出的结果的s的长度s.resize(new_length); //进行扩容 方式1//方式2// for(int i=0;i<count;i++)// s+="00";//两指针,从后到前开始换值。//为什么是从后到前呢?因为这个是值往后面移,如果是从前往//后,会出现原s被新s覆盖的情况,丢失原值。for(int i=new_length-1, j=length-1;i>=0;i--,j--){if(s[j]!=' ')s[i]=s[j];else {s[i]='0';s[i-1]='2';s[i-2]='%';i-=2;}}return s;}};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。