您的位置:首页 > 其它

Leetcode 97, Interleaving String

2016-12-11 11:15 323 查看
public boolean isInterleave(String s1, String s2, String s3) {
if(s3.length() != s1.length() + s2.length()) {
return false;
}

int m = s1.length();
int n = s2.length();
boolean [][] dp = new boolean [m+1][n+1];
dp[0][0]=true;

for(int i = 1; i<=m; i++){
if(s1.charAt(i-1)==s3.charAt(i-1)){
dp[i][0] = dp[i-1][0];
}
}

for(int i = 1; i<=n; i++){
if(s2.charAt(i-1)==s3.charAt(i-1)){
dp[0][i]=true;
}
}

for(int i = 1; i <= m; i++){
for(int j = 1; j <= n; j++){
char c = s3.charAt(i+j-1);
if(c == s1.charAt(i-1)){
if(dp[i-1][j]){
dp[i][j] = true;
}
}
if(c == s2.charAt(j-1)){
if(dp[i][j-1]){
dp[i][j] = true;
}
}
}
}

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