HYLW @ 2023-05-09 17:42:08
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[200],b[40000];
int ans[100],g=0;
cin>>a;
strcpy(b,a);
int n=strlen(a);
ans[g++]=n;
for(int i=2;i<=n;i++){
cin>>a;
strcat(b,a);
}
int x=1;
if(b[0]!='0') ans[g++]=0;
for(int i=1;i<strlen(b);i++){
if(b[i]==b[i-1]){
x++;
}else{
ans[g++]=x;
x=1;
}
}
ans[g]=x;
cout<<x<<endl;
for(int i=0;i<=g;i++){
printf("%d ",ans[i]);
}
return 0;
}
样例2,10过不了,问题出在压缩码最后一个输出(小数据过得了大数据过不了)
by zhouxiaolang @ 2023-05-25 20:25:11
@dwhh 数组开小了!!!!我开大了一点就过了,要仔细审题注意数据范围!!
by zhouxiaolang @ 2023-05-25 20:25:32
#include<iostream>
#include<cstring>
using namespace std;
int main(){
char a[200000],b[400000];
int ans[10000],g=0;
cin>>a;
strcpy(b,a);
int n=strlen(a);
ans[g++]=n;
for(int i=2;i<=n;i++){
cin>>a;
strcat(b,a);
}
int x=1;
if(b[0]!='0') ans[g++]=0;
for(int i=1;i<strlen(b);i++){
if(b[i]==b[i-1]){
x++;
}else{
ans[g++]=x;
x=1;
}
}
ans[g]=x;
for(int i=0;i<=g;i++){
printf("%d ",ans[i]);
}
return 0;
}
@dwhh
by HYLW @ 2023-05-27 16:42:15
谢谢大佬,抱歉现在才看到
by zhouxiaolang @ 2023-05-28 21:06:04
@dwhh 没事不客气