20170928_替换空格
来源:互联网 发布:php exec 返回值126 编辑:程序博客网 时间:2024/06/05 18:36
20170928_替换空格
//面试题4//实现一个函数,将字符串中的每个空格都转换成"%20"。//例如:"we are happy."//转换之后是:"we20%are20%happy."//直观思路:从前至后,依次扫描字符串中的每个字符,遇到空格时就将其替换为"20%",直到字符串结尾标识符'\0'。//时间复杂度是:O(n平方)//进阶思路:从后至前,使用两个指针,依次扫描字符串中的每个字符,遇到空格时就将其替换为"20%",直到两个指针相等。//时间复杂度是:O(n)#include<iostream>#include<cstring>#include<string>#include<algorithm>using namespace std;class Solutions{public:void ReplaceBlank(char str[], int length)//length:代表字符数组的总长度{if(str==nullptr || length<=0)//输入的字符串是空,或者字符串长度是0return;int OriginalLen=0;int NumOfBlank=0;int i=0;while(str[i] != '\0'){++OriginalLen;if(str[i] == ' ')++NumOfBlank;++i;}int NewLen=0;NewLen=OriginalLen+NumOfBlank*2;if(NewLen>length)//字符数组溢出return;//cout<<OriginalLen<<","<<NumOfBlank<<","<<NewLen<<endl;//设置两个指针int p1=OriginalLen;//指向旧数组的末尾int p2=NewLen;//指向新数组的末尾while(p2 != p1){if(str[p1] == ' '){str[p2--]='0';str[p2--]='2';str[p2--]='%';--p1;}else{str[p2]=str[p1];--p1;--p2;}}}};int main(void){const int SIZE=50;char str[SIZE]="we are happy.";//char str[SIZE]=" wearehappy.";//char str[SIZE]="wearehappy. ";//char str[SIZE]="wearehappy.";//char str[SIZE]="";cout<<str<<endl;Solutions object;object.ReplaceBlank(str,SIZE);cout<<str<<endl;system("pause");return 0;}
阅读全文
0 0
- 20170928_替换空格
- 04_替换空格
- 面试题4:字符串_空格替换
- 面试题4_替换空格
- 面试题04_替换空格_剑指Offer系列
- 正则表达式,把所有的空格替换成"_"
- 剑指Offer_面试题04_替换空格
- 空格替换
- 替换空格
- 空格替换
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- 替换空格
- AJAX发送数据之get请求方式
- web聊天类数据库功能表结构如何设计?
- 二叉树的线索化
- python学习笔记--zip()和map()
- 用Python开始机器学习(3:数据拟合与广义线性回归)
- 20170928_替换空格
- 5.搭建集群
- JQ的选择器使用方法整理汇总
- 51nod1268 和为K的组合 折半枚举
- c++堆的实现
- 8大内部排序算法学习笔记--(1)插入排序java实现
- VBA学习4_工作表名:sheet1与sheets(1)有什么不同?
- VMware 最新版本 14 发布啦,此次更新了一个大版本!
- CentOS下svn的安装配置和使用