跟我一起学算法系列4---替换空格
来源:互联网 发布:时光机还原软件 编辑:程序博客网 时间:2024/05/18 03:44
1.题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
2.算法分析
java实现该功能可以直接使用replace类函数,然而我们从算法的角度分析,可以先遍历统计出字符串中空格的个数,假设为n,替换空格之后的字符串长度在原有长度的基础上增加了2n。因此新的字符串长度确定了,从后向前遍历原字符串,遇到空格就将相应字符替换为%20,不是空格的原样复制。
3.代码实例
public String replaceSpace(StringBuffer str) { if(null == str) { return ""; } int len = str.length(); int count = 0; for (int i = 0; i < len; i++) { if(str.charAt(i) == ' ') { count++; } } int newLen = len + 2*count; int index = newLen - 1; char[] newChar = new char[newLen]; while(len > 0) { if(str.charAt(len - 1) == ' ') { newChar[index--] = '0'; newChar[index--] = '2'; newChar[index--] = '%'; } else { newChar[index--] = str.charAt(len - 1); } len--; } return String.valueOf(newChar);}
阅读全文
0 0
- 跟我一起学算法系列4---替换空格
- 跟我一起学OC系列-开篇
- 跟我一起学算法系列1---Two Sum(java)
- 跟我一起学算法系列2---Add Two Numbers(java)
- 跟我一起学算法系列3---判断数组中是否含有某个整数
- 跟我一起学算法系列5---从尾到头打印链表
- 跟我一起学Visual Studio 2008系列课程
- 跟我一起学Visual Studio 系列课程
- 跟我一起从零开始学WCF系列课程
- 跟我一起从零开始学WCF系列课程
- 跟我一起学JFinal系列一JFinal简介
- 跟我一起学OC系列-最经典篇
- 跟我一起学OC系列-布尔类型
- 跟我一起学OC系列-OOP编程的基础知识
- 跟我一起学java
- 跟我一起学摄影
- 跟我一起学makefile
- 跟我一起学Makefile
- JDK8新特性之接口的静态方法和默认方法
- windbg基本命令
- POI导出Excel模板工具类(使用jxls)
- 使用SQL进行递归查询
- List / Map / Collections
- 跟我一起学算法系列4---替换空格
- Python 加载数据到数据库
- 关于快速排序
- 条款30:透彻了解inlining的里里外外
- <br/标签的应用>
- unity shader 遮罩效果
- QSS总结以及最近做的Qt项目
- JVM的内存划分
- js的跨域