又是一道有点坑的A题。这道题要找出最长的前缀等于后缀,然后输出这个前缀和k个前缀的互补串
#include<bits/stdc++.h> using namespace std; string t; int main() { int n,k; scanf("%d%d",&n,&k); cin>>t; int i; for(i=1;i<n;i++) { string s1=t.substr(0,n-i); string s2=t.substr(i); if(s1==s2) { string s3=t.substr(n-i);//找到最小互补串(先要确定最长的前缀等于后缀) cout<<s1; for(int j=1;j<=k;j++) cout<<s3; cout<<endl; break; } } if(i==n) { for(int i=1;i<=k;i++) cout<<t; cout<<endl; } }