34:回文子串
- 总时间限制:
- 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 char c[505]; 4 int main() { 5 int n; 6 scanf("%s",c); 7 n=strlen(c); 8 for(int l=2; l<=n; ++l) 9 for(int i=0; i+l<=n; ++i) 10 { 11 bool flag=0; 12 for(int j=i; j<i+l; ++j) 13 if(c[j]!=c[i+l-j+i-1]) 14 { 15 flag=1; 16 break; 17 } 18 if(!flag) 19 { 20 for(int j=i; j<i+l; ++j) 21 printf("%c",c[j]); 22 printf(" "); 23 } 24 } 25 return 0; 26 }