2020-2-2 摸底测试C 字符串处理

(由于上一道题抄崩了索性就不抄题了)

大意:给定一个字符串t,要求制作一个长度尽量小的串,里面包含k个串t。

是的,我一开始就想到了:直接KMP就vans啦!

然后发现我KMP写错了...心态爆炸。

最后只好用暴力过的

#include <cstdio>
#include <cstdlib>
#include <cstring>
int cnt,cnti,n,k,next[2002];
int ax(int a,int b){return a>b?a:b;}
char a[2002];
int main(){
    scanf("%d%d",&n,&k);
    scanf("%s",a);
    for(int i=n-1;i>0;i--){//枚举公共前后缀长度 
        bool judge=true;
        for(int j=0;j<i;j++){
            if(a[j]!=a[n-i+j]){
                judge=false;
                break;
            }
        }
        if(judge){
            cnt=i;
            break;
        }
    }
    printf("%s",a);
    for(int i=1;i<k;i++)
        for(int j=cnt;j<n;j++)
            printf("%c",a[j]);
    return 0;
}

 

posted @ 2020-02-03 13:47  工程1  阅读(170)  评论(0)    收藏  举报