lyrzs @ 2021-03-16 20:08:52
#include<bits/stdc++.h>
using namespace std;
int main()
{
int cnt=1;
string s,t="";
//s用来输入,t把输入拼成一行
cin>>s;
t+=s;
int n=s.size();//输出n
cout<<n;
for(int i=2;i<=n;i++)
//将剩下未输入的输入
{
cin>>s;
t+=s;//将输入的s拼接到t的后面
}
t=t+'@';
//将t的最后加上一个不是0也不是1的字符,这样可以避免最后一个cnt不输出
for(int i=1;i<t.size();i++)
//将t遍历一遍,这样就变成求连号了
{
if(t[i]!=t[i-1])
{
cout<<cnt<<" ";
cnt=1;
}
else
{
cnt++;
}
}
return 0;
}
请问哪里出错了?全WA
by lyrzs @ 2021-03-16 20:38:58
各位dl看看吧
by vectorli1 @ 2021-03-16 20:52:39
改成:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int cnt=1;
string s,t="";
//s用来输入,t把输入拼成一行
cin>>s;
t+=s;
int n=s.size();//输出n
cout<<n<<' ';
for(int i=2;i<=n;i++)
//将剩下未输入的输入
{
cin>>s;
t+=s;//将输入的s拼接到t的后面
}
t=t+'@';
//将t的最后加上一个不是0也不是1的字符,这样可以避免最后一个cnt不输出
for(int i=1;i<t.size();i++)
//将t遍历一遍,这样就变成求连号了
{
if(t[i]!=t[i-1])
{
cout<<cnt<<" ";
cnt=1;
}
else
{
cnt++;
}
}
return 0;
}
by vectorli1 @ 2021-03-16 20:52:59
少打了一个空格
by lyrzs @ 2021-03-16 20:56:17
@VecTorLi 只能过两个点
by vectorli1 @ 2021-03-16 21:25:35
如果第一行的第一个字符是1,则需要多打一个0
by lyrzs @ 2021-03-17 18:05:02
@VecTorLi ?