博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指Offer——替换空格
阅读量:4317 次
发布时间:2019-06-06

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

题目描述:

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

 

分析:

如果从前往后替换空格,那么每遇到一个空格就需要将还没遍历到的字符后移,总的移动步数将会很多。

所以我们考虑先求出替换空格之后的字符串的长度,再从后往前遍历进行替换,将会大大减少替换的次数,也不会覆盖还没遍历的字符。

 

代码:

1 class Solution { 2 public: 3     void replaceSpace(char *str, int length) { 4         int oldLength = strlen(str);    // 没替换前的字符串长度 5         int newLength = oldLength; 6         for(int i = 0; i < oldLength; i++) {  // 求出替换空格后的字符串长度 7             if(str[i] == ' ') 8                 newLength += 2; 9         }10         if(newLength > length) return;  // 新长度超过限制的最长长度,则无法替换11         while(oldLength >= 0 && newLength > oldLength) {    // 从后往前替换空格12             if(str[oldLength] == ' ') {13                 str[newLength--] = '0';14                 str[newLength--] = '2';15                 str[newLength--] = '%';16                 oldLength--;17             } else {18                 str[newLength--] = str[oldLength--];19             }20         }21     }22 };

 

转载于:https://www.cnblogs.com/jacen789/p/7737499.html

你可能感兴趣的文章
个人编程作业2
查看>>
magento首页标题的修改
查看>>
刚刚拿到驾照?交警告诉你新手必知的10个行车好习惯
查看>>
linux 操作 mysql 指定端口登录 以及启动 停止
查看>>
Python多进程multiprocessing使用示例
查看>>
小学数学题大礼包
查看>>
分众模式下的学员管理
查看>>
Linux安装Solr
查看>>
ActiveX安全
查看>>
js获取浏览器 尺寸信息
查看>>
/etc/inittab 学习
查看>>
xmpp IOS开发高级
查看>>
[转] - linux下使用write\send发送数据报 EAGAIN : Resource temporarily unavailable 错
查看>>
从0开始 图论学习 拓扑排序 链式前向星表示法
查看>>
centos6.5安装pip方法
查看>>
WCF常用绑定选择
查看>>
OGRE COMMAND-LINE UTILITIES
查看>>
IO:in、out和err
查看>>
Linux记录-使用python临时搭建web服务器
查看>>
日期转换为新数据类型CONVERT() 函数
查看>>