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);     } 不知道这样对不对