openjudge7603 回文子串
时空限制 1000ms/64MB
描述
给定一个字符串,输出所有长度至少为2的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串。
输入
一个字符串,由字母或数字组成。长度500以内。
输出
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
样例输入
123321125775165561
样例输出
33
11
77
55
2332
2112
5775
6556
123321
165561
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
string s,st;
cin>>s;
int len=s.size(),i,j;
for (int t=2; t<=len; t++)
for (int k=0; k+t-1<len; k++){
st = s.substr(k,t);
for (i=0,j=t-1; i<j; i++,j--)
if (st[i]!=st[j]) break;
if (i>=j) cout<<st<<endl;
}
return 0;
}