美文网首页
【leetcode】No.97:interleaving-str

【leetcode】No.97:interleaving-str

作者: I讨厌鬼I | 来源:发表于2019-08-26 16:27 被阅读0次

题目描述

给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。
例如:

s1 ="aabcc",
s2 ="dbbca",
如果s3 ="aadbbcbcac", 返回true
如果s3 ="aadbbbaccc", 返回false

思路

动态规划,dp[i][j]表示s1i个字符和s2j个字符是否能交织组成s3i+j个字符。初始dp[0][0]=truedp[i][0]的递推如下:如果dp[i-1][0]==true同时s1的第i个字符与s3的第i个字符相等,则dp[i][0]=truedp[0][j]也同理。
更一般的情况dp[i][j]的递推如下:
dp[i-1][j]==true并且s1[i-1]==s3[i+j-1]
或者:
dp[i][j-1]==true并且s2[j-1]==s3[i+j-1]
dp[i][j]=true

代码

public class Solution {
    public boolean isInterleave(String s1, String s2, String s3) {
        int len1 = s1.length();
        int len2 = s2.length();
        int len3 = s3.length();
        
        if (len1+len2!=len3) return false;

        boolean[][] dp = new boolean[len1+1][len2+1];
        dp[0][0] = true;

        char[] str1 = s1.toCharArray();
        char[] str2 = s2.toCharArray();
        char[] str3 = s3.toCharArray();

        for (int i=1; i<=len1; i++){
            dp[i][0] = str1[i-1] == str3[i-1] && dp[i-1][0];
        }

        for (int j=1; j<=len2; j++){
            dp[0][j] = str2[j-1] == str3[j-1] && dp[0][j-1];
        }

        for (int i=1; i<=len1; i++){
            for (int j=1; j<=len2; j++){
                dp[i][j] = (dp[i-1][j] && str3[i+j-1] == str1[i-1])
                        || (dp[i][j-1] && str3[i+j-1] == str2[j-1]);
            }
        }
        
        return dp[len1][len2];
    }
}

相关文章

  • 【leetcode】No.97:interleaving-str

    题目描述 给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。例如: 思路 动态规划,dp[...

  • 跃迁

    72/100 【阅读No.97】 【书名】:《跃迁》 【作者】:古典 【我的感受】: 如果说古典老师《拆掉思维的墙...

  • 0731 No.97

    原句:在青山绿水之间,我想牵着你的手,走过这座桥,桥上是绿叶红花,桥下是流水人家,桥的那头是青丝,桥的这头是白发。...

  • “灰姑娘”和《L'amour est Bleu》 ——

    “灰姑娘”和《L'amour est Bleu》 ——关于工作和自我成长问题的思考 No.97 写在前面 写下这个...

  • 你知道多少让孩子从小自信的实用方法?(上篇)

    365日更NO.97 培养孩子从小自信的实用方法如下: 1.认真对待孩子的要求 当孩子在客厅站着...

  • NO.97记录历史

    梦境中偶尔会显现有趣的情景。梦见一个蹒跚学步的孩子跑过去找卧着的狮子玩,一只小狗在低头边嗅边蹭,企图找狮子的乳头吃...

  • 求脱单(女) | 我向往的爱情是互相依赖,彼此珍惜,更要付诸于行

    【脱单事务所】 “甩掉光棍,拥抱幸福” 不约不散 【脱单事务所】第九十七期嘉宾 NO.97 昵称:阿真 年龄:19...

  • No.97夏天无

    花底一声莺,花上半钩斜月。 月落乌啼何处,点飞英如雪。 东风吹尽去年愁,解放丁香结。 惊动小亭红雨,舞双双金蝶。 ...

  • 『No.97』指鹿为马,不负韶华

    我的小可爱小学毕业了,即将踏出小学校门,步入更高的学习殿堂。 回首娇小可爱的你,甩着两个小辫子,灵动可爱的踏入小学...

  • week 2019-06-23

    LeetCode 16[M] LeetCode 17[M] LeetCode 926

网友评论

      本文标题:【leetcode】No.97:interleaving-str

      本文链接:https://www.haomeiwen.com/subject/imkdectx.html