替换空格
来源:互联网 发布:java自行车是高端的吗 编辑:程序博客网 时间:2024/05/19 22:45
题目:请实现一个函数 把字符串中的每个空格替换成“%20”,例如输入“we are happy."则输出”we%20are%20happy."
从前向后 可以遍历字符串遇到空格则将空格后的字符移动两位并替换为%20 但是这种方法时间复杂度为O(N*N)
从后向前?
遍历一遍字符串可以知道字符串中空格的个数 比如“we are happy."中 字符串长度为14(包括结尾 ‘\0') 有两个空格 那么替换后的字符串长度为14+2*2=18
可以从后向前遍历字符串 设置两个指针 一个指向 替换后的字符串末尾 另一个指向原字符串 前向遍历字符串 当当前字符不是空格 则 复制当前字符
如果当前字符是空格 则复制”%20“
void strsub(char s[]){int len=strlen(s);int k=0;for(int i=0;i<len;i++){if(s[i]==' ')k++;}int high=k*2+len;s[high--]='\0';int low=len-1;while(low>=0){if(s[low]==' '){s[high--]='0';s[high--]='2';s[high--]='%';low--;}else{s[high--]=s[low--];}}}时间复杂度为O(N)
--------------------------------------------------------------------------------------
相关题目:
有两个排序的数组A1和A2 内存在A1的末尾有足够多的空余空间容纳A2 请实现一个函数 把A2中所有数字插入到A1中并且所有的数字是排序的
从后向前比较A1和A2中的数字 并把较大的数字复制到A1中合适位置
合并两个数组(包括字符串)时 如果从前向后复制每个数字(或字符)需要重复移动数字(字符)多次
可以考虑从后向前复制 这样就能减少移动的次数 从而提高效率
0 0
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 主流浏览器CSS3和HTML5兼容性详细清单
- 七月建博展你来不来,不来你亏了!
- Linux 下鼠标对应的文件
- 黑马程序员--关于一些错误的解决办法
- CSS3仿GooglePlay菜单
- 替换空格
- NetConf协议说明
- js淘宝局部放大效果
- 鼠标放上去Div旋转特效代码
- 纯JS+html5新标签canvas绘制与本地时间同步时针
- Count Complete Tree Nodes
- 【深度探索C++对象模型读书笔记】【第4章】Function语意学
- RMAN完整数据库备份恢复
- HDFS Everywhere——RDBMS on HDFS