AcWing 766. 去掉多余的空格
原题链接
简单
作者:
听风_10
,
2024-10-03 16:15:51
,
所有人可见
,
阅读 2
第一类双指针做法
#include<iostream>
#include<cstring>
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];
else
{
r+=' ';
int j=i;
while(j<s.size()&&s[j]==' ')
{
j++;
}
i=j-1;
}
}
cout<<r;
return 0;
}
cin过滤做法
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s;
while(cin>>s) cout<<s<<' ';
return 0;
}
局部判断,灵活输出法(可用于插入,去除某东西)
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string s;
getline(cin,s);
int t=s.size();
for(int i=0;i<t;i++)
{
if(s[i]!=' '&&s[i+1]!=' ') cout<<s[i];
if(i!=0&&s[i]==' '&&s[i+1]!=' ') cout<<' ';
if(s[i]!=' '&&s[i+1]==' ') cout<<s[i];
if(i==t&&s[t]!=' ') cout<<s[t];
}
return 0;
}