1143. 最长公共子序列
题目描述:
给定两个字符串 text1
和 text2
,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0
。
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
- 例如,
"ace"
是"abcde"
的子序列,但"aec"
不是"abcde"
的子序列。
两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
解题思路:
算法思路:
1.
状态表⽰:
对于两个数组的动态规划,我们的定义状态表⽰的经验就是:
i.
选取第⼀个数组
[0, i]
区间以及第⼆个数组
[0, j]
区间作为研究对象;
ii.
结合题⽬要求,定义状态表⽰。
在这道题中,我们根据定义状态表⽰为:
dp[i][j]
表⽰:
s1
的
[0, i]
区间以及
s2
的
[0, j]
区间内的所有的⼦序列中,最