private static boolean valid(String s1, String s2, String s3, int K, int i1, int i2) { if (i1 + i2 >= s3.length()) return true; if (K == 0) return false; String sub1 = s1.substring(i1); String sub2 = s2.substring(i2); String sub3 = s3.substring(i1 + i2); int i = 0; while (i < sub1.length() && i < sub3.length() && sub1.charAt(i) == sub3.charAt(i)) i++; int j = 0; while (j < sub2.length() && j < sub3.length() && sub2.charAt(j) == sub3.charAt(j)) j++; if (i == 0 && j == 0) return false; else if (i == 0) return valid(s1, s2, s3, K - 1, i1, i2 + j); else if (j == 0) return valid(s1, s2, s3, K - 1, i1 + i, i2); else return valid(s1, s2, s3, K - 1, i1 + i, i2) || valid(s1, s2, s3, K - 1, i1, i2 + j); } 不知道这样对不对
点赞 评论

相关推荐

牛客网
牛客企业服务