替换空格
2017-04-20 15:10
120 查看
题目
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路
从前往后替换:从前向后遍历,当插入新字符时,当前位置后面的字符全部需要移动位置,时间复杂度为O(n2)从后向前替换:从后向前遍历,查找空格个数,可计算出新的字符串所占内存空间,申请足够容量的内存空间,进行复制替换,时间复杂度为O(n)
解答
public static String replaceSpace(StringBuffer str){ //原始字符串长度 int length=str.length(); int count=0; if(length<1) return ""; //计算空格个数 for(int i=0;i<length;i++){ if(str.charAt(i)==' ') count++; } //新的字符串长度 int newlength=length+2*count; str.setLength(newlength); while(count>0 && length>=1){ if(str.charAt(--length)==' '){ str.setCharAt(--newlength,'0'); str.setCharAt(--newlength,'2'); str.setCharAt(--newlength,'%'); count--; } else str.setCharAt(--newlength,str.charAt(length)); } return str.toString(); }
考察点
不创建新的字符串内存空间时间复杂度
相关文章推荐
- 面试题4:替换空格之发散思维
- 替换空格和清除空格
- 替换空格
- lintcode : 空格替换
- 字符串替换空格-牛客网-剑指offer
- 剑指offer--替换空格
- 请实现一个函数,把字符数组中的每个空格替换成“%20”。 例如输入“we are happy.”,则输出“we%20are%20happy.”。
- Stirng类的常见用法:输出str长度,输出第一个"o",和最后一个"o"的索引,将str中的字符"l"替换成"m",字符串str按空格“ ”分割为2个字符串,比较这两个字符串是否相等。
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”
- 剑指offer之空格替换java
- [九度 1510 剑指offer]—替换空格 数组插入逆向移动
- 替换空格
- [LintCode]212.空格替换
- LintCode:空格替换
- 字符串替换空格
- 牛客网-剑指offer-02-替换空格
- excel中把空格替换为tab键的方法
- 字符串中替换空格
- 刷题Day2——替换一个字符串中的空格
- 1510 替换空格