思考题15.2-最长回文子序列

【写在前面】:最近在复习期末考试,所以python专题有一段时间没有更新,等期末考试完之后继续更新python专题。明天就要考算法了,想着今晚写一下博客就当是复习一遍了,有什么写的不妥当的地方欢迎大佬指正。

【题目】:(最长回文子序列)回文(palindrome)是正序与逆序相同的非空字符串。例如,所有长度为1的字符串、civic、racerar、aibohphobia(害怕回文之意)都是回文。设计高效算法,求给定输入字符串的最长回文子序列。例如,给定输入character,算法应该返回carac。算法的运行时间是怎样的?

解:

1、分析问题:题目让我们设计一个高效算法,求给定输入字符串的最长回文子序列,这道题可以对比最长子数组问题。

2、算法设计思想描述:设X=<x1,x2,...xn>是输入字符串序列,Z=<z1,z2,...zm>是X的最长回文子序列(LPS),X(i,j)是指以xi开始以xj结束的子序列。由题意得Z应该满足以下情况:

1)若n=1,则m=1,且z1=x1.

2)若n=2,x1=xn,则m=2,z1=x1=xn=zm。

3)若n=2,x1!=xn,则m=1,z1=x1or xn。

4)若n>2,x1=xn,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值