c_cpp 最长回文子串的.cpp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 最长回文子串的.cpp相关的知识,希望对你有一定的参考价值。
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 长度最长为1000。
示例:
输入: "babad"
输出: "bab"
注意: "aba"也是有效答案
示例:
输入: "cbbd"
输出: "bb"
bool CheckPalindrome(string s, int low, int high) {
while (low <= high) {
if (s[low] == s[high]) {
low++; high--;
} else {
return false;
}
}
return true;
}
string longestPalindrome(string s)
{
int iLenOfS = s.size();
if(iLenOfS == 1)
{
return s;
}
int span = 0;
int i;
for(int span = iLenOfS-1; span>0; span--)
{
for(int i = 0; i < iLenOfS-span; i++)
{
if(s[i] == s[i+span])
{
if(CheckPalindrome(s,i,i+span))
{
return s.substr(i,span+1);
}
}
}
}
return s.substr(0,1);
}
以上是关于c_cpp 最长回文子串的.cpp的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp 无重复字符的最长子串的.cpp
c_cpp 5.最长的回文子串 - Med - 2018.10.15
查找给定字符串的所有前缀的最长回文子串的长度
返回最长回文子串的长度中心扩散法
算法提升——中心扩散法(最长回文子串和回文子串)
最长回文子串的不同解法