leetcode如何求最长公共子序列
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下leetcode如何求最长公共子序列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定两个字符串 tex
千家信息网最后更新 2025年12月02日leetcode如何求最长公共子序列
小编给大家分享一下leetcode如何求最长公共子序列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。
若这两个字符串没有公共子序列,则返回 0。
示例 1:输入:text1 = "abcde", text2 = "ace"输出:3解释:最长公共子序列是 "ace",它的长度为 3。示例 2:输入:text1 = "abc", text2 = "abc"输出:3解释:最长公共子序列是 "abc",它的长度为 3。示例 3:输入:text1 = "abc", text2 = "def"输出:0解释:两个字符串没有公共子序列,返回 0。
提示:
1 <= text1.length <= 1000
1 <= text2.length <= 1000
输入的字符串只含有小写英文字符。
解题思路:
1,注意是最长公共子序列,不是最长公共子串
2,最长公共子序列问题是经典的动态规划题
3,状态转移方程
A,若str1[i]==str2[j],则str1[:i]和str2[:j]最长公共子序列的长度为
str1[:i-1]和str2[:j-1]最长公共子序列的长度加一
B, str1[:i-1]和str2[:j], str1[:i]和str2[:j-1]两者中较长者
4,未来表示方便,存储数组长度比字符串长度多1
代码实现
func longestCommonSubsequence(text1 string, text2 string) int {h:=len(text1)+1w:=len(text2)+1m:=make([][]int,h)for i:=0;im[i]=make([]int,w)}for i:=1;ifor j:=1;jif text1[i-1]==text2[j-1]{m[i][j]=m[i-1][j-1]+1}else{if m[i-1][j]>m[i][j-1]{m[i][j]=m[i-1][j]}else{m[i][j]=m[i][j-1]}}}}return m[h-1][w-1]}
以上是"leetcode如何求最长公共子序列"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
序列
字符
字符串
最长
两个
长度
输入
示例
篇文章
解释
输出
内容
不怎么
代码
动态
大部分
小写
思路
情况
数组
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql数据库怎么生成表
服务器安全级别分类
韶关网络技术
开源对软件开发影响
数据库删除和格式化
科技互联网基金买什么
宏病毒专杀软件开发
健身俱乐部 软件开发
滁州网络技术有限公司
贵州机架式服务器价格多少
中信国安网络安全
戴尔服务器硬盘保修期
数据库公告一般有哪些属性
长沙软件开发公司多吗
公司网络安全管理方针全员参与
dellr830服务器配置
吃鸡服务器连接已断开
数据库SQL学生表
淄博网络安全演练
mfc上传文件到数据库
数据库一个字段对应多个值
杭州学习软件开发公司哪家好
宇航软件开发有限公司
河北 网络安全事件
网上购物车管理系统数据库
广东江门零件加工管理软件开发
vf是什么数据库
手机数据库被清空怎么修
中国的高科技上市公司互联网
修谱软件开发