题目描述
给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。
示例
示例1
输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”
输出: true
示例2 输入: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”
输出: false
递归
将s1或者s2中的第一个字符与s3的第一个字符匹配。只要有一个匹配成功则算s3的这个字符成功匹配。若是匹配成功则丢弃这个匹配过的字符,然后继续匹配。直到s3的长度为0,即所有s3所有字符都被匹配掉了。
public boolean isInterleave(String s1, String s2, String s3) {
if (s1.length() + s2.length() != s3.length())
return false;
if (s3.length() == 0)
return true;
boolean machLeft = false;
if (s1.length() > 0) {
if (s1.charAt(0) == s3.charAt(0))
machLeft = isInterleave(s1.substring(1), s2, s3.substring(1));
}
boolean machRight = false;
if (s2.length() > 0) {
if (s2.charAt(0