idea网站开发,wordpress倒计时采集,阜阳网站开发招聘,app推广活动策划方案文章目录题目描述思路注意代码实现题目描述
请实现一个函数#xff0c;把字符串 s 中的每个空格替换成%20。
示例 1#xff1a; 输入#xff1a;s “We are happy.” 输出#xff1a;“We%20are%20happy.” 限制#xff1a; 0 s 的长度 10000 思…
文章目录题目描述思路注意代码实现题目描述
请实现一个函数把字符串 s 中的每个空格替换成%20。
示例 1 输入s “We are happy.” 输出“We%20are%20happy.” 限制 0 s 的长度 10000 思路
直接调用replace 划掉 双指针不开辟新空间空间复杂度O(1)时间复杂度O(N)
注意
时隔许久再写双指针的时候忘记了for的一个判定条件后指针前指针这个条件的本质上是当后指针与前指针相遇意味着要处理的元素都处理完了就可以结束处理了不用再继续往下了因为是原地修改在原本的string上因此将空格全部变成%20就好了不用再将We再赋值一遍。可以有效提高代码的效率。
代码实现
class Solution {
public:string replaceSpace(string s) { //字符数组if(s.empty()){return s;}int num 0;int len s.size();for(char c : s){if(c ){num;}}s.resize(len2*num);for(int i len - 1, j s.size() - 1; i 0 j i; i--){if(s[i] ){s[j--] 0;s[j--] 2;s[j--] %;}else{s[j--] s[i];}}return s;}
};