将字符串中的所有空格去掉,要求时间复杂度O(N)
Posted zhou753099943
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串中的所有空格去掉,要求时间复杂度O(N)相关的知识,希望对你有一定的参考价值。
/<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;
else
tmp++;
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";//情况1
char str[]="hello world xx yy abd";//情况2
cout<<str<<" len:"<<strlen(str)<<endl;
SetValue(str);
cout<<str<<" len:"<<strlen(str)<<endl;
return 0;
以上是关于将字符串中的所有空格去掉,要求时间复杂度O(N)的主要内容,如果未能解决你的问题,请参考以下文章