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

查找给定字符串的所有前缀的最长回文子串的长度

返回最长回文子串的长度中心扩散法

算法提升——中心扩散法(最长回文子串和回文子串)

最长回文子串的不同解法