#include <iostream>
int longestPalindromeSubstring(std::string str) {
int len = str.size();
int longestLength = 1, start = 0;
for (int i = 0; i < len; i++) {
for (int j = i; j < len; j++) {
int palindrome = 1;
for (int k = 0; k < (j - i + 1) / 2; k++) {
if (str[i + k] != str[j - k]) {
palindrome = 0;
}
}
if (palindrome && (j - i + 1) > longestLength) {
start = i;
longestLength = j - i + 1;
}
}
}
std::cout << "Longest palindrome substring = ";
for (int i = start; i <= start + longestLength - 1; i++)
std::cout << str[i];
std::cout << "\n";
return longestLength;
}
int main()
{
std::string str = "qabcbaproggorpxyyxzv";
int result = longestPalindromeSubstring(str);
std::cout << "Length palindrome substring length = " << result;
}
/*
run:
Longest palindrome substring = proggorp
Length palindrome substring length = 8
*/