1 条题解

  • 0
    @ 2026-9-30 13:01:20

    C++ :

    
    #include <cstdio>
    #include <cstring>
    static char w[64], art[1000005];
    int main(){
        if(!fgets(w, sizeof(w), stdin)) return 0;
        int lw=(int)strlen(w);
        while(lw>0 && (w[lw-1]=='\n'||w[lw-1]=='\r')) w[--lw]=0;
        for(int i=0;i<lw;i++) if(w[i]>='A'&&w[i]<='Z') w[i]+=32;
        if(!fgets(art, sizeof(art), stdin)) return 0;
        int la=(int)strlen(art);
        while(la>0 && (art[la-1]=='\n'||art[la-1]=='\r')) art[--la]=0;
        int cnt=0, first=-1;
        int i=0;
        while(i<la){
            while(i<la && art[i]==' ') i++;
            if(i>=la) break;
            int j=i;
            while(j<la && art[j]!=' ') j++;
            // 单词 art[i..j-1],位置 i
            int len=j-i;
            if(len==lw){
                int ok=1;
                for(int k=0;k<lw;k++){
                    char c=art[i+k];
                    if(c>='A'&&c<='Z') c+=32;
                    if(c!=w[k]){ ok=0; break; }
                }
                if(ok){ cnt++; if(first<0) first=i; }
            }
            i=j;
        }
        if(cnt==0) printf("-1\n");
        else printf("%d %d\n", cnt, first);
        return 0;
    }
    
    
    • 1

    信息

    ID
    2917
    时间
    1000ms
    内存
    256MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者