《剑指offer》004-替换空格(java实现)
2017-02-21 10:40
417 查看
题目:
请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“We are happy.”,则输出“We%20are%happy.”。在网络编程中,如果URL参数中含有特殊字符,一般将特殊字符转换成’%’后面跟上ASCII码的两位十六进制的表示。空格的ASCII码是32,十六进制是ox20,’#’的ASCII码是35,十六进制是ox23。
思路:遍历一次字符串,统计空格的个数,并计算替换之后的字符串的总长度(每替换一个空格,字符串的长度增加2,增加的总长度为空格数的两倍)。从字符串的后面开始复制和替换,用两个指针分别指向复制和替换之后的结尾,每次复制和替换之后向前移动。
public String replaceSpace(String s){ if(s == null) return null; int count = 0; for(int i = 0; i < s.length(); i++){ if(s.charAt(i) == ' ') count++; } if(count == 0) return s; char[] c = s.toCharArray(); char[] result = new char[count*2 + s.length()]; int i = s.length() - 1; for(; count >0 && i >= 0; i--){ if(c[i] != ' '){ result[count*2 +i] = c[i]; }else{ result[count*2 +i] = '0'; result[count*2 +i - 1] = '2'; result[count*2 +i - 2] = '%'; count--; } } for(int j = i; j >= 0; j--){ result[j] = c[j]; } return new String(result); }
相关文章推荐
- 《剑指offer》004-替换空格(java实现)
- JAVA实现替换空格(《剑指offer》)
- java实现——004替换空格
- 《剑指offer》问题5 替换空格 Java实现
- 《剑指offer》编程题java实现(二):替换空格
- 剑指Offer面试题4:替换空格 Java实现
- JAVA实现替换空格(《剑指offer》牛客网StringBuffer)
- 替换空格java实现
- 剑指offer:替换空格 java版
- 剑指offer--面试题4:替换空格--Java实现
- 数据结构与算法分析笔记与总结(java实现)--字符串10:空格替换练习题
- 剑指offer面试题5-替换空格-java
- 剑指offer——替换空格的两种方法(Java)
- 剑指offer面试题java实现之题4:替换空格
- 替换字符串中的空格(C++/Java实现)
- Java实现-空格替换
- 剑指offer算法 java实现 替换字符串空格
- 剑指offer算法 java实现 替换字符串空格
- 剑指Offer(Java)-替换空格
- 剑指Offer,面试题4,替换空格,Java写法