最长公共子序列Python解法
给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。
两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-subsequence
列:
输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 "ace" ,它的长度为 3 。
#解析:动态规划,dp二维数组,每个字符串对应一维。对应的dp值后移一格,字符对上直接加一,对不上就继承公共序列更长的一个。
class Solution(object):def longestCommonSubsequence(self, text1, text2):""":type text1: str:type text2: str:rtype: int"""len1, len2 = len(text1)+1, len(text2)+1 # 二维数组长宽dp = [[0 for i in range(len1)] for i in range(len2)] # 初始化数组for i in range(1, len2): # 行遍历for j in range(1, len1): # 列遍历if text1[j-1] == text2[i-1]: # 对应字符串相同的情况dp[i][j] = dp[i-1][j-1] +1 # 直接加一else:dp[i][j] = max(dp[i-1][j], dp[i][j-1]) # 不同的情况取更长的一种情况return dp[-1][-1] # 返回右下角的值,即为最长公共子序列
最长公共子序列Python解法相关推荐
- 最长递增子序列Python解法
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序.例如,[3,6,2,7] 是数组 [0,3,1,6, ...
- python 最长公共子序列长度_python实现最长公共子序列
最长公共子序列python实现,最长公共子序列是动态规划基本题目,下面按照动态规划基本步骤解出来. 1.找出最优解的性质,并刻划其结构特征 序列a共有m个元素,序列b共有n个元素,如果a[m-1]== ...
- 最长公共子序列(JAVA实现)
题目标题: 计算两个字符串的最长公共子序列的长度,字符不区分大小写. 输入描述:输入两个字符串,分两行输入. 输出描述:输出一个整数. 示例: 输入: 测试数据1(注,字符串前有空格): 12asdf ...
- java实现最长连续子序列_最长公共子序列/最长公共子串 Python/Java实现
关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...
- Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离
Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...
- 用Python计算最长公共子序列和最长公共子串
如何用Python计算最长公共子序列和最长公共子串 1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公 ...
- python实现求解最长公共子序列LCS问题
在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...
- python求最长公共子串_Python-求解两个字符串的最长公共子序列
一.问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence).比如字符串1:BDCABA:字符串2:ABCBDAB.则这两个字符串的最长公共子序列长 ...
- LCS/最长公共子序列/最长公共子串 实现 Python/Java
参考 http://blog.csdn.net/u012102306/article/details/53184446 http://blog.csdn.net/hrn1216/article/det ...
最新文章
- 查看 -- tree
- Jquery DataTable控制显示列,导出EXCEL
- 服务器和运行内存,服务器运行内存不够的解决方法
- via logo html,HTML5 Audio Description (via screenreader)
- YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
- ThreadLocal和InheritableThreadLocal使用
- 安全数据科学家的日常:需要做什么?将面对哪些挑战?
- 2.12linux csf 防火墙 防止少量的ddos cc攻击
- 利用SciTE的导出功能保持代码语法着色效果
- html 图片加速,35种加速网站访问的最好做法
- 材料界的魔术师:值得关注的10家超材料创业公司
- 手机信号强度dbm与天线格度的关系
- dojo实现省份地市级联报错(二)
- 徽州区数字城管平台智慧管理城市
- h5 字体加粗_html、css文字加粗方法
- 《shard 入门精要》冯乐乐
- idea中为啥要用maven
- 一文详解大小功率MOS管,你不知道的都在这里
- LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))...
- 信号与系统--冲激响应
热门文章
- SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制
- ABAP SAPGUI 里使用 F4 value help 选择时间
- kitten编程猫里的函数定义,函数实现和函数调用原理
- SAP Cloud for Customer Work Center(工作中心)的实现源代码
- SAP Spartacus 的页面设计思路
- SAP Spartacus central configuration - B2cStorefrontModule
- skip page cache - SAP gateway的调试
- how is SAP ui5 formatter resolved
- when and where is createContent called
- AWS public key的邮件验证方式