题目链接
英文链接: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 { |