给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。

示例 1:

输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"
输出: true
示例 2:

输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbbaccc"
输出: false

思路:之前做过,比较简单,dp[i][j]代表s1的i个和s2的j个能不能组成。

对于s3的i+j如何组成,只能:

1)i+j-1已经被i和j-1组成,s2[j]==s3[i+j]

比如:

s1:123 s2 456 s3:12453  6

2)i+j-1已经被i-1和j组成,s1[i]==s3[i+j]

比如:s1:126 s2 453 s3:12453  6

压缩空间后的表现还是不理想,搞不懂为什么。

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 (len3 != len1 + len2) {return false;}boolean dp[] = new boolean[s2.length() + 1];for (int i = 0; i <= len1; ++i) {for (int j = 0; j <= len2; ++j) {if (i == 0 && j == 0) {dp[j] = true;} else if (i == 0) {dp[j] = dp[j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1);} else if (j == 0) {dp[j] = dp[j] && s1.charAt(i - 1) == s3.charAt(i + j - 1);} else {dp[j] = (dp[j] && s1.charAt(i - 1) == s3.charAt(i + j - 1)) || (dp[j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1));}}}return dp[s2.length()];}
}

leetcode97 交错字符串相关推荐

  1. leetcode97. 交错字符串(动态规划)

    给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbbca&quo ...

  2. LeetCode 97交错字符串(动态规划)

    微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复制ip地址&94 ...

  3. LeetCode 97: 交错字符串

    这里我们考虑用 s1和 s2的某个前缀是否能形成 s3 的一个前缀. 这个方法的前提建立于:判断一个 s3的前缀(用下标 k表示),能否用 s1和 s2 的前缀(下标分别为 i和 j),仅仅依赖于 s ...

  4. 【JAVA】交错字符串——力扣每日一题(六)(2020.07.18)

    目录 题目:97. 交错字符串 思路 如果你从本文中学习到丝毫知识,那么请您点点关注.点赞.评论和收藏 大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人,个人博 ...

  5. 【数据结构与算法】之深入解析“交错字符串”的求解思路与算法示例

    一.题目要求 给定三个字符串 s1.s2.s3,请帮忙验证 s3 是否是由 s1 和 s2 交错组成的. 两个字符串 s 和 t 交错的定义与过程如下,其中每个字符串都会被分割成若干非空子字符串: s ...

  6. 97. Interleaving String 交错字符串

    Title 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbb ...

  7. 交错字符串Python解法

    给定三个字符串 s1.s2.s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的. 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: s = ...

  8. LeetCode 97. 交错字符串(DP)

    1. 题目 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbb ...

  9. LeetCode 97. 交错字符串(动态规划)

    题目描述 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbbc ...

最新文章

  1. JAVA连接SQL Server数据库的端口配置操作步骤
  2. 2021(上)软考打印准考证时间及操作步骤
  3. 无所不在的IM,网易云信潜心为移动社交时代打好地基
  4. Python操作MongoDB - 极简教程
  5. 工作405-关于vue组件开发过程中一直报错:This relative module was not found:
  6. php是根据html中的值查询数据条件_FleaPHP框架数据库查询条件($conditions)写法总结...
  7. eclipse 设置虚拟机内存(可用)
  8. java截取utf8字符串_java中常用的字符串的截取方法
  9. [我的成长:1004期]春节快乐
  10. mkdir命令(转)
  11. 计算机组成原理期末考试题库(超级多的那种)
  12. 悬赏任务发布平台系统源码|威客任务网站源码PHP开源版
  13. 中国科技大学计算机系导师,中国科学技术大学
  14. java实现getch_Java中是否有C++中的getch()等效项? - java
  15. 时间管理专题_软件篇02
  16. Scikit-learn实战之最近邻算法
  17. MongoDb查询语句($ne $in )
  18. 如何使用IOS自动化测试工具UIAutomation
  19. getAttribute(),setAttribute()的方法使用以及区别。
  20. SP业务全线回暖导致华友光线合作失败

热门文章

  1. 运维工程师绩效考核表_IT运维存在问题及改进
  2. js 获取域名_RapidDNS域名查询如何联动Goby
  3. 人工神经网络_制作属于自己的人工神经网络
  4. __thread 和 __typeof__关键字
  5. linux C 获取日期时间
  6. mysql client 未开启_Django+mysqlclient未关闭数据库连接
  7. winform 判断控件有没有被遮挡_编程入门基础之 winform(2)
  8. 【转】ABP源码分析十二:本地化
  9. 【转】ELK是什么能做什么怎么做
  10. Java并发:线程共享变量可见性原理