LeetCode97交错字符串(JAVA)
程序员文章站
2022-06-11 09:37:39
...
方法一: 动态规划
class Solution {
public boolean isInterleave(String s1, String s2, String s3) {
// 使用动态规划
// 优先判断
if (s3.length() != s1.length() + s2.length())
return false;
boolean dp[][] = new boolean[s1.length() + 1][s2.length() + 1];
for (int i = 0; i <= s1.length(); i++) {
for (int j = 0; j <= s2.length(); j++) {
if (i == 0 && j == 0)
dp[i][j] = true;
else if (i == 0)
dp[i][j] = dp[i][j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1);
else if (j == 0)
dp[i][j] = dp[i - 1][j] && s1.charAt(i - 1) == s3.charAt(i + j - 1);
else
dp[i][j] = (dp[i - 1][j] && s1.charAt(i - 1) == s3.charAt(i + j - 1))
|| (dp[i][j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1));
}
}
return dp[s1.length()][s2.length()];
}
}
上一篇: 电商小程序如何颠覆创业者未来?
下一篇: 360极速浏览器自动翻译功能能取消掉吗?