题目描述
如果你能逆向思维一些,这道题会很简单(算法二)
样例
算法1
(暴力枚举) $O(n^2)$
第一类双指针算法
很常用的一种方法
时间复杂度
参考文献
C++ 代码
#include<iostream>
using namespace std;
int main()
{
string s;
getline(cin,s);
string r;//有一个新的字符串来存储弄好的字符
for(int i=0;i<s.size();i++)
if(s[i]!=' ') r+=s[i];//对于当前s[i]会有两种情况
else
{
r+=' ';
int j=i;//此处开始往下共三行--第一类双指针算法
while(j<s.size()&&s[j]==' ')j++;
i=j-1;
}
cout<<r<<endl;
return 0;
}
算法2
(暴力枚举) $O(n^2)$
有逆向思维就是这么牛,你就一直读入不同的字符串,把这一个完整的拆成多个,因为cin只能读非空格,读入了以后就输出s和一个空格
注意用while来实现
时间复杂度
参考文献
C++ 代码
#include<iostream>
using namespace std;
int main()
{
string s;
while(cin>>s)//这种while用得不好,不会用
cout<<s<<' ';
return 0;
}