给定两个字符串 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解法相关推荐

  1. 最长递增子序列Python解法

    给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序.例如,[3,6,2,7] 是数组 [0,3,1,6, ...

  2. python 最长公共子序列长度_python实现最长公共子序列

    最长公共子序列python实现,最长公共子序列是动态规划基本题目,下面按照动态规划基本步骤解出来. 1.找出最优解的性质,并刻划其结构特征 序列a共有m个元素,序列b共有n个元素,如果a[m-1]== ...

  3. 最长公共子序列(JAVA实现)

    题目标题: 计算两个字符串的最长公共子序列的长度,字符不区分大小写. 输入描述:输入两个字符串,分两行输入. 输出描述:输出一个整数. 示例: 输入: 测试数据1(注,字符串前有空格): 12asdf ...

  4. java实现最长连续子序列_最长公共子序列/最长公共子串 Python/Java实现

    关注我的微信公众号:后端技术漫谈 不定期推送关于后端开发.爬虫.算法题.数据结构方面的原创技术文章,以及生活中的逸闻趣事. 我目前是一名后端开发工程师.主要关注后端开发,数据安全,网络爬虫,物联网,边 ...

  5. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  6. 用Python计算最长公共子序列和最长公共子串

    如何用Python计算最长公共子序列和最长公共子串 1. 什么是最长公共子序列?什么是最长公共子串? 1.1. 最长公共子序列(Longest-Common-Subsequences,LCS) 最长公 ...

  7. python实现求解最长公共子序列LCS问题

    在实现论文<Automatically Generating Models for Botnet Detection>论文的算法中,用到了一个The longest commom subs ...

  8. python求最长公共子串_Python-求解两个字符串的最长公共子序列

    一.问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence).比如字符串1:BDCABA:字符串2:ABCBDAB.则这两个字符串的最长公共子序列长 ...

  9. LCS/最长公共子序列/最长公共子串 实现 Python/Java

    参考 http://blog.csdn.net/u012102306/article/details/53184446 http://blog.csdn.net/hrn1216/article/det ...

最新文章

  1. 查看 -- tree
  2. Jquery DataTable控制显示列,导出EXCEL
  3. 服务器和运行内存,服务器运行内存不够的解决方法
  4. via logo html,HTML5 Audio Description (via screenreader)
  5. YBTOJ洛谷P3195:玩具装箱(斜率优化dp)
  6. ThreadLocal和InheritableThreadLocal使用
  7. 安全数据科学家的日常:需要做什么?将面对哪些挑战?
  8. 2.12linux csf 防火墙 防止少量的ddos cc攻击
  9. 利用SciTE的导出功能保持代码语法着色效果
  10. html 图片加速,35种加速网站访问的最好做法
  11. 材料界的魔术师:值得关注的10家超材料创业公司
  12. 手机信号强度dbm与天线格度的关系
  13. dojo实现省份地市级联报错(二)
  14. 徽州区数字城管平台智慧管理城市
  15. h5 字体加粗_html、css文字加粗方法
  16. 《shard 入门精要》冯乐乐
  17. idea中为啥要用maven
  18. 一文详解大小功率MOS管,你不知道的都在这里
  19. LOJ #6279. 数列分块入门 3-分块(区间加法、查询区间内小于某个值x的前驱(比其小的最大元素))...
  20. 信号与系统--冲激响应

热门文章

  1. SAP CAP 项目 cds watch 生成的 index.html 的模板位置和权限控制
  2. ABAP SAPGUI 里使用 F4 value help 选择时间
  3. kitten编程猫里的函数定义,函数实现和函数调用原理
  4. SAP Cloud for Customer Work Center(工作中心)的实现源代码
  5. SAP Spartacus 的页面设计思路
  6. SAP Spartacus central configuration - B2cStorefrontModule
  7. skip page cache - SAP gateway的调试
  8. how is SAP ui5 formatter resolved
  9. when and where is createContent called
  10. AWS public key的邮件验证方式