Interleaving String

来源:互联网 发布:2016网络经典小说 编辑:程序博客网 时间:2024/06/06 02:57


public class Solution {    public boolean isInterleave(String s1, String s2, String s3) {        if (s1 == null || s2 == null || s3 == null) {            return false;        }                int len = s3.length();        int len1 = s1.length();        int len2 = s2.length();                if (len1 + len2 != len) {            return false;        }                boolean[][] f = new boolean[len1 + 1][len2 + 1];        f[0][0] = true;                for (int i = 1; i <= len1; i++) {            if (f[i - 1][0] && s1.charAt(i - 1) == s3.charAt(i - 1)) {                f[i][0] = true;            }        }                for (int j = 1; j <= len2; j++) {            if (f[0][j - 1] && s2.charAt(j - 1) == s3.charAt(j - 1)) {                f[0][j] = true;            }        }                for (int i = 1; i <= len1; i++) {            for (int j = 1; j <= len2; j++) {                if (f[i - 1][j] && s1.charAt(i - 1) == s3.charAt(i + j - 1) ||                    f[i][j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1)) {                    f[i][j] = true;                }            }        }                return f[len1][len2];    }}


0 0
原创粉丝点击