跟我一起学算法系列4---替换空格
2017-11-07 23:18
387 查看
1.题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
2.算法分析
java实现该功能可以直接使用replace类函数,然而我们从算法的角度分析,可以先遍历统计出字符串中空格的个数,假设为n,替换空格之后的字符串长度在原有长度的基础上增加了2n。因此新的字符串长度确定了,从后向前遍历原字符串,遇到空格就将相应字符替换为%20,不是空格的原样复制。
3.代码实例
请实现一个函数,将一个字符串中的空格替换成“%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); }
相关文章推荐
- 算法系列——替换空格(剑指offer)
- 校招准备系列:每天一道算法题(11)-替换空格
- 【面试算法系列】替换字符串中的空格为其他字符 - C语言实现
- 每天一道算法题——替换空格
- 算法--替换字符串的空格为指定字符
- 算法学习之旅,初级篇(19)--替换空格
- 算法系列之-替换连续的字符
- 重拾算法之剑指Offier——替换空格
- 剑指offer-算法题练习:part2 替换空格
- 字符串的空格替换算法
- 算法-字符串替换空格
- [面试] 算法(五)—— 替换字符串中的空格
- 算法练习:将字符串中所有的空格替换为'%20'(只用基本数据结构)
- 算法爱好者——算法题:替换字符串中的空格 ? 待解决
- [PHP]算法-替换空格的PHP实现
- python实现剑指offer系列2:字符串空格替换
- 剑指offer,时间复杂度为o(n)的空格替换算法,44页例子代码
- 替换空格算法
- 【我的算法日记】请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。