博客
关于我
剑指 Offer 05. 替换空格
阅读量:656 次
发布时间: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/

    你可能感兴趣的文章
    NIFI大数据进阶_离线同步MySql数据到HDFS_01_实际操作---大数据之Nifi工作笔记0029
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
    查看>>
    NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
    查看>>
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>