class Solution {
public boolean isInterleave(String s1, String s2, String s3) {
int l1 = s1.length(), l2 = s2.length(), l3 = s3.length();
if (l1 + l2 != l3) {
return false;
}
boolean[][] mat = new boolean[l1 + 1][l2 + 1];
mat[0][0] = true;
for (int i = 1; i < l1 + 1; i++) {
mat[i][0] = mat[i - 1][0] && (s1.charAt(i - 1) == s3.charAt(i - 1));
}
for (int j = 1; j < l2 + 1; j++) {
mat[0][j] = mat[0][j - 1] && (s2.charAt(j - 1) == s3.charAt(j - 1));
}
for (int i = 1; i < l1 + 1; i++) {
for (int j = 1; j < l2 + 1; j++) {
mat[i][j] |= mat[i - 1][j] && (s1.charAt(i - 1) == s3.charAt(i + j - 1));
mat[i][j] |= mat[i][j - 1] && (s2.charAt(j - 1) == s3.charAt(i + j - 1));
}
}
return mat[l1][l2];
}
}
97. 交错字符串
最新推荐文章于 2024-09-12 19:02:20 发布