首页 > 代码库 > 回文子串

回文子串

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

给定一个字符串,输出所有长度至少为2的回文子串。

回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。

输入
一个字符串,由字母或数字组成。长度500以内。
输出
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
样例输入
123321125775165561
样例输出
33
11
77
55
2332
2112
5775
6556
123321
165561
来源
习题(12-6)

代碼實現:

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 int l;
 5 char ch[600];
 6 int main(){
 7     scanf("%s",&ch);
 8     l=strlen(ch);
 9     for(int i=1;i<=l;i++)
10     for(int j=0;i+j<l;j++)
11     for(int k=j;k<=i+j;k++){
12         if(ch[k]!=ch[i+2*j-k]) break;
13         if(k==i+j){
14             for(int h=j;h<=i+j;h++) printf("%c",ch[h]);
15             printf("\n");
16         }
17     }
18     return 0;
19 }

。。。

回文子串