给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串。注意两个s可能有重叠部分。例如,"ababa"含有两个“aba".
输入描述:
输入包括一个字符串s,字符串长度length(1<=length<=50),s中每个字符都是小写字符。
输出描述:
输出一个字符串,即含有连续两个s作为子串的最短字符串。
示例1
输入 abracadabra
输出 abracadabracadabra
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
int main(){
char fir[50];
int length;
while(scanf("%s",fir)!=EOF){
length=strlen(fir);
int cou=1;
int ans=0;
int anslas=0;
for(int i=0;i<length-1;i++){
cou=i+1;
int j=0;
while(j<cou){
if(fir[j]==fir[length-cou+j]){
ans=j+1;
}else{
break;
}
j++;
if(j==cou){
anslas=ans;
}
}
}
printf("%s",fir);
for(int i=anslas;i<length;i++){
printf("%c",fir[i]);
}
}
}