【剑指offer】替换空格
来源:互联网 发布:网络大学报名流程 编辑:程序博客网 时间:2024/06/03 22:58
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
如果从前往后遍历,每遇到一个空格,后面的字符都需要向后移动2位,全部替换完时,大部分字符都需要移动多次,然而从后往前遍历时,先计算工序多少空间,每个字符只需要向后移动一次,为空格提供位置。
代码
public class Solution { public String replaceSpace(StringBuffer str) { int spacenum = 0;//spacenum为计算空格数 for(int i=0; i<str.length();i++){ if(str.charAt(i)==' ') spacenum++; } int indexold = str.length()-1; //indexold为为替换前的str下标// int newlength = str.length() + spacenum*2;//计算空格转换成%20之后的str长度// int indexnew = newlength-1;//indexold为为把空格替换为%20后的str下标 str.setLength(newlength);//使str的长度扩大到转换成%20之后的长度,防止下标越界 for(;indexold>=0 && indexold<newlength;--indexold){ if(str.charAt(indexold) == ' '){ // str.setCharAt(indexnew--, '0'); str.setCharAt(indexnew--, '2'); str.setCharAt(indexnew--, '%'); }else{ str.setCharAt(indexnew--, str.charAt(indexold)); } } return str.toString(); }}
阅读全文
0 0
- [剑指offer]替换空格
- [剑指offer]替换空格
- 剑指offer:替换空格
- 替换空格--《剑指offer》
- 剑指Offer:替换空格
- 【剑指offer】替换空格
- 《剑指Offer》--替换空格
- 剑指offer--替换空格
- 【剑指offer】替换空格
- 【剑指offer】空格替换
- 剑指offer-替换空格
- 剑指offer:替换空格
- [剑指offer]替换空格
- 《剑指offer》替换空格
- 剑指offer:替换空格
- 【剑指Offer】替换空格
- 【剑指offer】-替换空格
- 剑指offer 替换空格
- 由中序遍历序列和后续遍历序列恢复二叉树
- mysql重置密码出现的一系列问题
- 简单的跑酷游戏
- Android学习指南 (方便自己看)
- NOIP2017_AFO记
- 【剑指offer】替换空格
- 9717 取数对弈(scauoj、dp动态规划)
- 构建流式计算卖家日志系统应用实践
- Android 平台的Python——CLE方案实现(三)
- 内存空间的各个段
- Python (布尔类型计算)
- 项目实战--心电APP (2017.11.18)
- POJ
- 输出某班同学成绩平均分及人数