leetcode如何求最长公共子序列
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下leetcode如何求最长公共子序列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!给定两个字符串 tex
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
智能科技公司是互联网公司吗
期待互联网科技
卓越科技(互联网 )
互联网 视角下的科技创新
长亮科技 互联网金融
深圳互联网科技怎么样
湖南洣水互联网科技有限公司扣款
深圳前海聚择互联网科技有限公司
常德市电业局互联网科技部
厦门千工互联网科技有限公司
呼和浩特新华互联网科技学院
互联网时代的科技公司
厦门江牛科技互联网
图游互联网科技
新氧科技和美国互联网有关系吗
广东鹅鹅鹅互联网科技有限公司
世界互联网科技成果奖
好易买互联网科技
宁波允成互联网科技有限公司
中国主要互联网科技公司
互联网科技公司
广州淘业互联网络科技
亿策互联网科技
互联网科技网站
长亮科技互联网金融
互联网科技公司介绍
燊美集互联网科技有限公司
小米互联网科技园入驻
互联网科技资金流入
陕西云淼互联网科技公司