Lintcode29 Interleaving String solution 题解

【题目描述】

Given three strings: s1, s2, s3, determine whether s3 is formed by the interleaving of s1 and s2.

给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。

【题目链接】

http://www.lintcode.com/en/problem/interleaving-string/

【题目解析】

dp[i][j]表示s1前i个和s2前j个对s3前i+j个是否interleaving string。

首先初始化。遍历s1,初始化所有的dp[i][0]

再遍历s2,初始化所有的dp[0][j]

若s3的第i+j-1位和s1的第i位相等,则看dp[i-1][j]是否为true;同理,若s3的i+j-1位和s2的第j位相等,则看dp[i][j-1]是否为true。只要两种情况中的任意一种为true,则dp[i][j]为true。

【参考答案】

http://www.jiuzhang.com/solutions/interleaving-string/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,793评论 0 33
  • 动态规划(Dynamic Programming) 本文包括: 动态规划定义 状态转移方程 动态规划算法步骤 最长...
    廖少少阅读 3,397评论 0 18
  • 前言 正文6道题目来自leetcode––为求职为生的编程网站,目的是工作闲暇之时锤炼代码功底。如何从这篇文章受益...
    落影loyinglin阅读 1,021评论 2 12
  • 回溯算法 回溯法:也称为试探法,它并不考虑问题规模的大小,而是从问题的最明显的最小规模开始逐步求解出可能的答案,并...
    fredal阅读 13,824评论 0 89
  • 分治方法 将问题划分成互不相交的子问题 递归地求解子问题 将子问题的解组合起来 动态规划(两个要素:最优子结构、子...
    superlj666阅读 542评论 0 0