首页 > 其他分享 >剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格

时间:2022-10-14 12:13:41浏览次数:37  
标签:count string Offer int 05 len 空格 copy

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

class Solution {
public:
    string replaceSpace(string s) {
        int len = s.size();
        int count = 0;
        //统计空格数量
        for (char& c : s) {
            if (c == ' ') count++;
        }
        //定义s_copy长度
        int s_len = len + count * 2;
        std::string s_copy;
        s_copy.resize(s_len);
        //遍历修改
        int i = len-1;
        int j = s_len-1;
        while (i>=0) {
            if (s[i] == ' ') {
                s_copy[j] = '0';
                s_copy[j - 1] = '2';
                s_copy[j - 2] = '%';
                j = j - 3;
            }
            else {
                s_copy[j] = s[i];
                j = j - 1;
            }
            i = i - 1;
        }
        return s_copy;
    }
};

已经造好的轮子:

return s.replace(" ","%20");

 

 

标签:count,string,Offer,int,05,len,空格,copy
From: https://www.cnblogs.com/lihaoxiang/p/16791185.html

相关文章

  • 05方法的重载
    一、方法重载重载就是在一个类中,有相同的函数名称,但形参不同的函数。重载原则:方法名称必须相同;参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等);方法的......
  • 05.使用寄存器电亮LED原理(2)
             ......
  • 前端成神之路-JavaScript基础第05天笔记
    JavaScript基础第05天笔记1-作用域1.1作用域概述通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用......
  • 剑指offer 38. 字符串的排列
    输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。示例:输入:s="abc"输出:["abc","acb","bac","bca","cab","......
  • 剑指 Offer 22. 链表中倒数第k个节点
    题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的......
  • CF605E Intergalaxy Trips
    linkSolution不是很难,不知道为啥之前没做出来。不难看出我们有如下转移式:\[f_{u}=\sumf_{v}\timesP_{u,v}\times(\prod_{f_t<f_v}(1-P_{u,t}))+1\]那么我们可以发......
  • Go语言学习日记【二十四】将字符串中连续多个空格压缩为一个
    packagemainimport("fmt""regexp")funcmain(){oldstr:="Ihaveadream"fmt.Println(oldstr)newstr:=DeleteExtraSpace(oldstr)fmt.......
  • 【音视频连载-005】基础学习篇-SDL 加载 YUV 文件并显示
    公众号回复:OpenGL,领取学习资源大礼包音视频学习入门技术文章连载:​​技术开发故事会连载​​​​【音视频连载-001】基础学习篇-SDL介绍以及工程配置​​​​【音视频连载-......
  • 05.使用寄存器点亮LED(1)
               ......
  • 剑指Offer03.数组中重复的数字
    1.题目描述找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复......