替换空格
2017-01-13 01:52
162 查看
题目描述
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解法1:
从头到尾遍历字符串,每次遍历到空格的时候,将空格替换为目标字符串,时间复杂度为O(n^2)
解法2:
从头到尾遍历字符串,如果遇到空格,则对应位置复制目标字符串
解法3:
首先遍历字符串中空格的个数,然后从后向前遍历,将字符直接移动到最终的位置,时间复杂度为O(n^2)
代码如下:
void replaceSpace(char *str,int length) {//未考虑修改后的字符串长度超过预期长度,这个length在书上指的是最大容量,面试的时候要问 if(length<1) { return; } int numofspace=0; for(int i=0;i<length;++i) { if(str[i]==' ') { ++numofspace; } } int newlen=length+numofspace*2;//计算出新长度 int i=length-1,j=newlen-1;//从后往前拷贝,防止覆盖,也避免重复移动 while(i>-1&&j>i)//新增加j>i这一个条件,当j=i的时候说明已经没有空格了,不需要继续替换! { if(str[i]!=' ') { str[j--]=str[i--]; } else { str[j--]='0'; str[j--]='2'; str[j--]='%'; --i; } } return; }
相关文章推荐
- 剑指Offer面试题4:替换空格 Java实现
- 剑指Offer:面试题4 替换空格
- 替换空格(java)
- 字符串替换空格
- 编程题——替换空格
- [剑指offer]替换空格
- 面试题5:替换空格
- 17.09.24 牛客网练习总结:二维数组中的查找,替换空格
- 牛客网 替换空格
- txt中把换行替换为空格
- Perl中删除或替换字符串中特殊字符(如空格)的方法
- 面试题四:替换空格
- linux删除指定行&删除行首空格&替换字符
- android 把后台返回的数据中的逗号替换成空格
- 题目1510:替换空格 jobdu
- 程序员面试金典第一章:数组与字符串(4) 空格替换
- (二)剑指Offer之替换空格
- 如何把字符串中的回车空格替换成其他的字符
- ORACLE-字符串替换 去空格
- Eclipse 用空格替换 tab键