Fanray @ 2021-10-07 10:38:00
#include<bits/stdc++.h>
using namespace std;
string a;
int main(){
int l=205;
int x=0;
char b='0';
bool g=0;
for(int i=0;i<l;i++){
cin>>a;
if(g==0){
l=a.length();
cout<<l<<" ";
g=1;
}
for(int j=0;j<l;j++){
if(a[j]==b)x++;
else {
cout<<x<<" ";
x=1;
if(b=='0')b='1';
else b='0';
}
}
}
return 0;
}
输入:样例
输出:7 3 1 6 1 6 4 3 1 6 1 6 1 3
by 编码落寞 @ 2021-10-07 11:06:47
程序判断下一个值与上一个值不一致时,输出上一次0或者1个数。
样例最后一行1值为1,无法触发你最后的else条件,也就没最后一个输出了。
by Fanray @ 2021-10-07 11:29:04
@编码落寞 谢谢
by KnownError_ @ 2021-11-22 20:29:24
在输入数据后面添加一个空格什么的就行了