您的位置:首页 > 其它

97. Interleaving String

2018-04-11 23:20 337 查看
dp[i][j]意思是s1前i个字符插入了s2的前j个字符。

public 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()+1; i++)
for(int j=0; j< s2.length()+1; j++){
if(i==0&&j==0){
dp[i][j]=true;
continue;
}
if(i==0){
if(s3.charAt(i+j-1)==s2.charAt(j-1)&&dp[i][j-1])
dp[i][j] = true;
}else if(j==0){
if(s3.charAt(i+j-1)==s1.charAt(i-1)&&dp[i-1][j])
dp[i][j] = true;
}else{
if((s3.charAt(i+j-1)==s1.charAt(i-1)&&dp[i-1][j])||(s3.charAt(i+j-1)==s2.charAt(j-1)&&dp[i][j-1]))
dp[i][j] = true;
}

}

return dp[s1.length()][s2.length()];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dp class string leetcode