题目链接
英文链接:https://leetcode.com/problems/interleaving-string/
中文链接:https://leetcode-cn.com/problems/interleaving-string/
题目详述
给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。
示例 1:
1 | 输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac" |
示例 2:
1 | 输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc" |
题目详解
- 字符串的动态规划问题,比较经典的有 LeetCode72-编辑距离。
f(i, j)
表示s1
的前i
个字符和s2
的前j
个字符是否可以交错组成s3
的前i + j
个字符。- 状态转移:如果
s1[i] == s3[i + j]
,则问题转化为了f[i - 1][j]
;如果s2[j] == s3[i + j]
,则问题转化为了f[i][j - 1]
。两种情况只要有一种为真,则f[i][j]
就为真。 - 注意初始化。
1 | public class LeetCode_00097 { |