97.交错字符串

交错字符串

给定三个字符串 s1、s2、s3,请你判断 s3 是否由 s1 和 s2 交错组成。

解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var isInterleave = function (s1, s2, s3) {
const m = s1.length, n = s2.length;
if (m + n !== s3.length) return false;
const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(false));
dp[0][0] = true;
for (let i = 1; i <= m; i++) dp[i][0] = dp[i - 1][0] && s1[i - 1] === s3[i - 1];
for (let j = 1; j <= n; j++) dp[0][j] = dp[0][j - 1] && s2[j - 1] === s3[j - 1];
for (let i = 1; i <= m; i++) {
for (let j = 1; j <= n; j++) {
dp[i][j] = (dp[i - 1][j] && s1[i - 1] === s3[i + j - 1]) ||
(dp[i][j - 1] && s2[j - 1] === s3[i + j - 1]);
}
}
return dp[m][n];
};

97.交错字符串
https://leetcode.lz5z.com/97.interleaving-string/
作者
tickli
发布于
2024年2月3日
许可协议