最大回文长度

Posted estherljy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大回文长度相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<string>
using namespace std;
 
//递归方法,求解最长回文子序列
int find_str(char *str, int i, int j)
{
	if (i == j)
		return 1;	//只有一个元素,回文长度为1
	if (i > j) return 0;   //因为只计算序列str[i....j]
 
	//如果首尾相同
	if (str[i] == str[j])
		return find_str(str, i + 1, j - 1) + 2;
	//如果首尾不同
	int left=find_str(str, i, j - 1);
	int right=find_str(str, i + 1, j);
	if(left>right)return left;
	else return right;
}
 
int main()
{
	char str[] = "cabbeaf";
	int n = strlen(str);
	int res = find_str(str, 0, n - 1);
	cout << res<< endl;
	getchar();
	return 0;
}

 

以上是关于最大回文长度的主要内容,如果未能解决你的问题,请参考以下文章

最大回文长度

判断一个数中最大回文数的长度

Manachar算法详解

回文串最大长度

139. 回文子串的最大长度(回文树/二分,前缀,后缀和,Hash)

算法题之最大回文子串