面试题4_替换空格
来源:互联网 发布:女性健康知讲座 编辑:程序博客网 时间:2024/06/05 08:08
面试题4_替换空格
//面试题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
- 面试题4:字符串_空格替换
- 面试题4_替换空格
- 面试题4:替换空格
- 面试题4 替换空格
- 面试题4:空格替换
- 面试题4-替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 面试题4 替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4-替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- 面试题4:替换空格
- sql update操作数据更新成功,返回的影响行数是0
- 111
- ajax注册验证
- python中关于时间用法
- HTC vive开发:关于手柄按键对接控制
- 面试题4_替换空格
- 第一节 Web介绍知识
- websocket聊天室
- K-最邻近算法总结
- java6——运算符
- Android H5交互(之一),获取H5方法返回值
- IntelliJ IDEA for Mac 快捷键总结
- 升级ORB_SLAM2依赖程序以提升效率
- python入门足迹