题目如下:
我的输入:
2
HoHoHo
abcabcabcabc
代码如下:
#include<stdio.h>
#include<string.h>
#define max 100
int main(){
int n=0;
// freopen("input.txt","r",stdin);
scanf("%d",&n);
for(int i=0;i<n;i++){
char s[max];
char temp[max];
int label=0;//用于判断结束循环的标志
scanf("%s",s);
for(int j=1;j<=strlen(s);j++){//暴力遍历求最短串 && j代表最短串的位数
temp[j-1]=s[j-1];
int l=0;
for(int k=0;k<strlen(s);k++,l=(l+1)%j){
if(temp[l]!=s[k]){//不同就退出判断循环
break;
}
if(k==strlen(s)-1){//找到最短串
label=1;
}
}
if(label==1){
break;
}
}
for(int i=0;i<strlen(temp);i++){
printf("%c",temp[i]);
}
printf("%d\n",strlen(temp));
}
}
输出为:
Ho@3
abc3
第二个案例输出是正确的,但是第一个案例不知道为什么凭空出现了一个@,麻烦大家帮我看一下,提前祝大家新年快乐