回文子串
题目描述
给定一个字符串,输出所有长度至少为2的回文子串。
回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba是回文字符串。
输入格式
一个字符串,由字母或数字组成。长度500以内。
输出格式
输出所有的回文子串,每个子串一行。
子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出。
输入输出样列
输入样例1:复制
123321125775165561
输出样例1:复制
33
11
77
55
2332
2112
5775
6556
123321
165561
#include <iostream>
#include <string>
using namespace std;
bool isH(string s, size_t len)
{
size_t i = 0;
while (i < len / 2)
{
if (s[i] != s[len - i - 1])
return false;
i++;
}
return true;
}
int main()
{
string s, str = "123321125775165561";
// cin >> str;
for (size_t j = 2; j < str.length(); j++)
{
for (size_t i = 0; i <= str.length() - j; i++)
{
s = str.substr(i, j);
if (isH(s, j))
cout << s << endl;
}
}
return 0;
}