【面试题4】替换空格
来源:互联网 发布:淘宝助理批量修改价格 编辑:程序博客网 时间:2024/06/16 05:43
题目:请实现一个函数,把字符串中的每个空格替换成”%20“。例如,输入“We are happy”,则输出”We%20are%20happy”。
思路,联想到从尾部循环替换的思想(在冒泡排序算法之中也是从尾部往前进行比较然后交换的),于是形成如下的思路:首先统计出该字符串中所有的空格数量,并重新计算新串所需的char数组的长度,把旧串转化成的char数组拷贝到一个临时数组中,并同时创建一个新的char数组,该新数组的长度是计算之后的长度。从该新数组的尾部开始循环,依次往前比较,只要遇到了空格就替换为%20。如果没有遇到空格就直接复制过来就行。
public class Solution { public String replaceSpace(StringBuffer str) { if(str==null){ return null; } StringBuilder newstr=new StringBuilder(); for(int i=0;i<str.length();i++){ if(str.charAt(i)==' '){ newstr.append('%'); newstr.append('2'); newstr.append('0'); }else{ newstr.append(str.charAt(i)); } } String s=newstr.toString(); return s; }}
void ReplaceBlank(char string[],int length){ if(string==NULL||length<=0) return; /*originalLength为字符串string的实际长度*/ int originalLength=0; int numberofBlank=0; int i=0; while(string[i]!='\0') { ++originalLength; if(string[i]==' ') ++numberofBlank; ++i; } /*newLength为把空格替换成'%20'之后的长度*/ int newLength=originalLength+numberofBlank*2; if(newLength>length) return; int indexofOriginal=originalLength; int indexofNew=newLength; while(indexofOriginal>=0 && indexofNew>indexofOriginal) { if(string[indexofOriginal]==' ') { string[indexofNew--]='0'; string[indexofNew--]='2'; string[indexofNew--]='%'; } else { string[indexofNew--]=string[indexofOriginal]; } --indexofOriginal; } }
1 0
- 面试题4:替换空格
- 面试题4 替换空格
- 面试题4:空格替换
- 面试题4-替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4-替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- Linux学习——关机重启命令
- Array-Leetcode
- JAVA I/O流(10)
- UVA 11987 Almost Union-Find 并查集的删除操作 懒惰标记
- 我的传智播客之javaweb_day02学习总结
- 【面试题4】替换空格
- c++派生类内存分布图
- Linux 安装器添加安全功能的必要性
- Codeforces Round #403 Div. 2 B. The Meeting Place Cannot Be Changed(二分)
- 创建和使用线程
- 二,性能测试
- AC自动机——学习笔记
- 一个菜鸟安装虚拟机的小结
- 4 数字加密 (15分)——一维数组