将字符串中的所有空格去掉,要求时间复杂度O(N)

来源:互联网 发布:淘宝描述图片尺寸最大 编辑:程序博客网 时间:2024/04/29 21:53


/<span style="font-size:18px;">/题目:将字符串中的所有空格去掉,要求时间复杂度O(N)//空间复杂度O(1)//感想:最开始我以为这个题目很简单,但面试的时候由于紧张,没有写得特别优化,所以被小米给刷了,贼伤心的//条件的控制很重要,我当时就是因为紧张,条件没有控制好,现在想想真是很尴尬,//面试出来后我都有一种想法我他妈就不适合当程序员</span>#include <iostream>using namespace std;#include <string.h>#include <assert.h>void SetValue(char *str){assert(str);char *tmp=str-1;int count=0;//测一下一共调用了多少次while(*str !='\0'){if(*str == ' ' || str <= tmp){if(tmp <=str)tmp=str+1;elsetmp++;while(*tmp ==' ' && *tmp !='\0'){count++;tmp++;}*str=*tmp;count++;if(*str =='\0'){cout<<"调用的次数:"<<count<<endl;return;}}++str;}cout<<"调用的次数:"<<count<<endl;}int main(){//char str[]="hello worldxxyywhyabd";//情况1char str[]="hello world xx yy    abd";//情况2cout<<str<<"  len:"<<strlen(str)<<endl;SetValue(str);cout<<str<<"  len:"<<strlen(str)<<endl;return 0;}




0 0
原创粉丝点击