时间限制:1s
内存限制:128MB
给定一个字符串,输出所有长度至少为22的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,
cccdeedccc
都是回文字符串。
输入
一个字符串,由字母或数字组成。长度500以内。
输出
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
样例
输入1
123321125775165561
输出1
33 11 77 55 2332 2112 5775 6556 123321 165561
#include<bits/stdc++.h>
using namespace std;
char s[505];
int l,len,j;
bool f(char *s,int lep,int rep)
{
int i=lep,j=rep;
while(i<=j)
{
if(s[i]!=s[j])
{
return false;
}
i++;
j--;
}
return true;
}
int main()
{
scanf("%s",s);
len=strlen(s);
for(l=2;l<=len;l++)
{
for(int i=0;i+l-1<len;i++)
{
j=i+l-1;
if(f(s,i,j))
{
for(int k=i;k<=j;k++)
{
printf("%c",s[k]);
}
printf("\n");
}
}
}
return 0;
}