laozhang_123 @ 2024-02-07 15:13:42
#include<bits/stdc++.h>
using namespace std;
int s[100010]={1};
int main(){
char ch;
int a,cnt=0,sum=1;
char tch;
cin>>tch;
while(cin>>ch){
if(ch!=tch){
tch=ch;
cnt++;}
s[cnt]++;
sum++;}
cout<<sqrt(sum)<<' ';
for(int i=0;i<=cnt;i++) cout<<s[i]<<' ';
return 0;
}
by lizicheng3042 @ 2024-02-07 15:19:46
嗯,因为**第一个数表示连续有几个
by laozhang_123 @ 2024-02-09 16:34:04
@lizicheng3042 SO,为啥还是WA
by lizicheng3042 @ 2024-02-15 09:58:14
……怎么说呢,我不知道你怎么修改的你的代码,因此无法准确回复
by whlwhlwhl @ 2024-03-04 17:03:05
因为第一个数表示连续有几个0,若输入的第一个数为1的话,应该先输出一个0,表示连续有0个0,后面再进行正常的交叉判断即可