回文子串c++刚需求解用字符串解

回文子串
题目描述
给定一个字符串,输出所有长度至少为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;
}