剑指offer 面试题4—替换字符串中空格
来源:互联网 发布:独生子女 知乎 编辑:程序博客网 时间:2024/05/17 17:55
题目:
实现一个函数,把字符串中的每个空格替换成“%20”。加入输入“we are happy.”,则输出“we%20are%20happy.”。
时间复杂度为O(n^2)
基本思想:从前往后把字符串中的空格替换成%20.
假设字符串的长度为n,对每个空格字符,需要移动后面O(n)个字符,因此总的时间复杂度为O(n^2)。
时间复杂度为O(n)
基本思想:先遍历找出空格总数,并计算出替换之后的字符串的总长度。然后从字符串的后面开始复制和替换。
所有的字符都只复制移动一次,时间复杂度为O(n)。
#include <iostream>using namespace std;void replaceBlank(char s[],int len){if(s == NULL || len < 0)return ;int blanks=0,i=0;int lenS=0;//实际长度while(s[i]!='\0'){++lenS;if(s[i]==' ')++blanks;++i;}int newlen=lenS+2*blanks;cout<<lenS<<" "<<newlen<<endl;int p1=lenS;int p2=newlen;while(p1>=0 && p2>p1){if(s[p1]==' '){s[p2--]='0';s[p2--]='2';s[p2--]='%';}elses[p2--]=s[p1];--p1;}}void main(){char s[20] ="we are happy.";//这里的20必须大于上面的newlencout<<strlen(s)<<endl;//13cout<<sizeof(s)<<endl;//20replaceBlank(s,sizeof(s));cout<<s<<endl;}
0 0
- 剑指offer 面试题4—替换字符串中空格
- 剑指offer 面试题4—替换字符串中空格
- 剑指offer面试题4:替换字符串中的空格
- 剑指offer-->面试题4 替换空格
- 《剑指offer》面试题4 替换空格
- 【剑指offer】面试题4:替换空格
- 【剑指offer】面试题4替换空格
- 剑指offer 面试题4 替换空格
- 剑指Offer:面试题4 替换空格
- 剑指offer-面试题4-替换空格
- 《剑指Offer》面试题4:替换空格
- 【剑指offer】 面试题4: 替换空格
- 剑指offer 面试题4---替换空格
- 剑指offer面试题4-- 替换空格
- 【剑指offer】面试题4:替换空格
- 剑指Offer:面试题4 替换空格
- 剑指offer-面试题4:替换空格
- 剑指Offer 面试题4 替换空格
- smarty 调用php内置函数
- 【tcp-ip学习总结】一些常用的winsock API函数
- WIN7 Wireshark: There are no interfaces on which a capture can be done
- xshell和xmanger的注册码
- Fibonacci数列的c语言模块化测试程序
- 剑指offer 面试题4—替换字符串中空格
- listView隔行换色多选
- Git初识
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
- 高歌—【先声夺银】4.23午评:美元强势走高,等待加息到来。(附油)
- Web Service 简单的例子
- android支付平台调研
- openstack学习笔记 --- 用nova管理quatos
- android-sdk-windows 官方开发相关下载资源大汇总