最长回文子串(C++)
Posted hebbely
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长回文子串(C++)相关的知识,希望对你有一定的参考价值。
#include <iostream>
using namespace std;
bool validStr(string s,int left,int right)
{
while (left < right) {
if(s.at(left) != s.at(right))
return false;
left++;
right--;
}
return true;
}
string longestPalindrome(string s) {
int len = s.length();
int maxLen = 1;
if(len < 2 )
{
cout << s;
return s;
}
string res = s.substr(0,1);
for (int i = 0; i < len - 1 ; i++) {
for (int j = i + 1; j < len; j++) {
if (j - i + 1 > maxLen && validStr(s, i, j)) {
maxLen = j - i + 1;
res = s.substr(i,maxLen);
}
}
}
cout << res;
return res;
}
int main()
{
longestPalindrome("abc");
// longestPalindrome("a");
// longestPalindrome("abab");
// longestPalindrome("abab78987");
// longestPalindrome("aa678");
return 0;
}
以上是关于最长回文子串(C++)的主要内容,如果未能解决你的问题,请参考以下文章