leetcode-97-交错字符串

在这里插入图片描述

递归-暴力

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

/**
 * @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);
};

在这里插入图片描述



感谢观看 期待关注



在这里插入图片描述

知乎:带只拖鞋去流浪

简书:带只拖鞋去流浪

哔哩哔哩:带只拖鞋去流浪

关注我,带你一起写bug

warning :版权所有,转载请注明

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值