博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态规划求一个序列的最长回文子序列(Longest Palindromic Substring )
阅读量:5125 次
发布时间:2019-06-13

本文共 1066 字,大约阅读时间需要 3 分钟。

1、问题描述

给定一个字符串(序列),求该序列的最长的回文子序列。

2、分析

需要理解的几个概念:

---回文

---子序列

---子串

这一篇文章描述了利用动态规划求解两个序列的最长公共子序列(Longest Common Sequence)。

假设LCS(X,Y)表示序列X,Y的最长公共子序列,LPS(X)表示X的最长回文子序列;

在设序列X1为X的装置序列(逆序),比如X=“123”,X1=“321”;

则有:

LCS(X,X1) = LPS(X)。

1 class Solution { 2 public: 3     string longestPalindrome(string s) { 4         string s1(s.rbegin(),s.rend()); 5         //s1.reserve() 6         //cout << s1 <
arr[i][j-1]?arr[i-1][j]:arr[i][j-1]);37 }38 }39 }40 //cout << arr[length1][length2]<
=1&&j>=1;)//这里是倒序打印的45 {46 if (str1[i-1] == str2[j-1])47 {48 //cout << str1[i-1]<<" ";//按照这样会倒序打印49 print = str1[i-1]+print;50 i--;51 j--;52 }else53 {54 if(arr[i][j -1] >= arr[i - 1][j])j--;55 else56 i--;57 58 }59 60 }61 return print;62 63 }64 65 };

 

转载于:https://www.cnblogs.com/LCCRNblog/p/4444058.html

你可能感兴趣的文章
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
hihocoder1187 Divisors
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
前端监控
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
中国烧鹅系列:利用烧鹅自动执行SD卡上的自定义程序(含视频)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>