博客
关于我
剑指 Offer 05. 替换空格
阅读量:657 次
发布时间:2019-03-15

本文共 1141 字,大约阅读时间需要 3 分钟。

题目描述

方法一:额外申请空间

思路为了解决空格替换为%20的问题,可以定义一个额外的字符串str。然后遍历原字符串s,当遇到空格时,在str中添加"%20",否则直接将字符添加到str中。

代码

class Solution {public:    string replaceSpace(string s) {        string str;        for (int i = 0; i < s.length(); ++i) {            if (s[i] == ' ') {                str += "%20";            } else {                str += s[i];            }        }        return str;    }};

方法二:原地替换

思路首先统计字符串s中空格的个数。然后在原字符串s上申请额外的空间,空间大小为空格数乘以2。接下来用快慢指针的方法,从字符串末尾向前遍历。当遇到空格时,将该位置及其前两位替换为"%", "2", "0";否则,将字符直接复制到相应位置。

代码

class Solution {public:    string replaceSpace(string s) {        int cnt = 0;        for (int i = 0; i < s.length(); ++i) {            if (s[i] == ' ') {                ++cnt;            }        }        s.resize(s.size() + 2 * cnt);        int i = s.length() - 1, j = s.size() - 1;        while (i < j) {            if (s[i] == ' ') {                s[j] = '0';                s[j-1] = '2';                s[j-2] = '%';                j -= 3;            } else {                s[j] = s[i];                --j;            }            --i;        }        return s;    }};

文章目录

文章目录

目录

  • 方法一:额外申请空间1.1 思路1.2 代码

  • 方法二:原地替换2.1 思路2.2 代码

  • 转载地址:http://mrzmz.baihongyu.com/

    你可能感兴趣的文章
    PyTorch 模型性能分析和优化 — 第 2 部分
    查看>>
    PTA L1-011 A-B
    查看>>
    pta l2-1紧急救援(Dijkstra)
    查看>>
    pta求阶乘序列前n项和_学霸整理——求数列的通项公式解法集锦,转化、归纳一文全懂...
    查看>>
    SpringBoot中集成Redis实现对redis中数据的解析和存储
    查看>>
    pthread_create导致的程序崩溃
    查看>>
    ptyhon POSIX
    查看>>
    public private protected default小结
    查看>>
    PublicCMS怎么用金蝶Apusic Application Server部署
    查看>>
    publish over ssh、 Kubernetes Continuous Deploy插件
    查看>>
    PubMed详解-ChatGPT4o作答
    查看>>
    Pubsub Extensions for Smack
    查看>>
    pulsar mq 单体验证demo, docker启动pulsar mq验证生产者消费者命令
    查看>>
    pulsar mq 学习使用,pulsar java客户端, spring boot pulsar , spring pulsarTemplate如何使用 pulsar4.0.0
    查看>>
    Pulsar mq 设置延迟消息模式 pulsar mq 发送延迟消息 pulsar如何发送消费延时消息
    查看>>
    Pulsar 游标回滚,移动偏移量测试
    查看>>
    pulsar开源消息队列_了解Pulsar---Pulsar工作笔记001
    查看>>
    Puppet 在大规模分布式系统中的性能优化策略有哪些?
    查看>>
    puppet 学习总结(1)——puppet 入门详解
    查看>>
    puppet 集中化管理PDF by 守住
    查看>>