讲我错的原因

P1320 压缩技术(续集版)

difficultlong @ 2024-08-31 19:28:11

#include<bits/stdc++.h>
using namespace std;
char s1[201],ch;
int sum=1;
char s[40001];
int main(){
    scanf("%s",s1+1);
    int len=strlen(s1+1);
    for(int i=1;i<=len;i++){
        s[i]=s1[i];
    }
    int p=len;
    for(int i=len;i<=len*len+6;i++){
        scanf("%c",&ch);
        if(ch=='\n'){
            continue;
        }
        p++;
        s[p]=ch;
    }
    printf("%d ",len);
    for(int i=1;i<=len*len;i++){
        if(s[i]==s[i+1]){
            sum++;
        }
        else{
            printf("%d ",sum);
            sum=1;
        }
    }
    return 0;
}

为什么是错的,求大佬指出。 我其实发过一次了,但是,我想要我错的理由,谢谢大家


by Ivan422 @ 2024-08-31 19:35:05

问题主要出在读入时的 +6,换行个数不应当是 6,而是 len-1


by difficultlong @ 2024-08-31 20:18:28

@Ivan422 谢谢,我已经关注了,主要是样例误导了我


|