首页 > 其他 > 详细

【最大回文长度】

时间:2018-07-30 20:02:43      阅读:116      评论:0      收藏:0      [点我收藏+]
#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;
}

 

【最大回文长度】

原文:https://www.cnblogs.com/EstherLjy/p/9392314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!