leetcode-97-交错字符串

leetcode-97-交错字符串_第1张图片

递归-暴力

思路:一个字符一个字符进行比较。

/**
 * @param {string} s1
 * @param {string} s2
 * @param {string} s3
 * @return {boolean}
 */
var isInterleave = function(s1, s2, s3) {
    const n = s1.length,
        m = s2.length;
    if (n + m != s3.length) {
        return false;
    }
    const compare = (i, j, k) => {
        if (k == s3.length) {
            return true;
        }
        let res = false;
        if (i < n && s1[i] == s3[k]) {
            res = compare(i + 1, j, k + 1);
        }
        // 注意这里可能出现(i指向和j指向的字符一样的情况,这个时候我们不能让下面这条递归执行),这种情况res肯定是true,所以我们让res = res || compare(i,j+1,k+1),直接返回 true 而不执行 compare(i,j+1,k+1)
        if (j < m && s2[j] == s3[k]) {
            res = res || compare(i, j + 1, k + 1);
        }
        return res;
    }
    return compare(0, 0, 0);
};

leetcode-97-交错字符串_第2张图片



感谢观看 期待关注




在这里插入图片描述

知乎:叄贰壹

简书:带只拖鞋去流浪

关注我,带你一起写bug

warning :未经授权,不得转载

有问题的小伙伴请在下方留言,喜欢就点个赞吧

你可能感兴趣的:(leetcode)