class Solution {
public:bool isInterleave(string s1, string s2, string s3) {if(s1.length()+s2.length()!=s3.length()) return false;vector<vector<bool>> dp(s1.length()+1,vector<bool>(s2.length()+1,false));dp[0][0]=true;//s1空,s2空,可以组成s3空for(int i=0;i<=s1.length();i++){for(int j=0;j<=s2.length();j++){int id = i+j-1;if(i>=1 && s1[i-1]==s3[id] && dp[i-1][j]) dp[i][j]=true; if(j>=1 && s2[j-1]==s3[id]  && dp[i][j-1]) dp[i][j]=true; }}return dp[s1.length()][s2.length()];}
};

题意解析:s1和s2交错拼接,是否可以拼成s3,这里需要注意的是s1和s2必须是顺次访问的,不能跳着取字符去拼接,就是每次都要从剩余的字符串的头部还是取。举例aabcc和dbbca是否能拼成aadbbbaccc,dp[i][j] 表示s1的前i个与s2的前j个是否可以拼成s3的前i+j个,那么就有两种情况,要么最后一个字符来自s1,要么来自s2,如果s3的前i+j个字符的最后一个字符s3[i+j-1]来自s1,也就是s3[i+j-1]和s1[i-1]相等,那么只要dp[i-1][j]是true,dp[i][j]就是true;如果s3的前i+j个字符的最后一个字符s3[i+j-1]来自s2,也就是s3[i+j-1]和s2[j-1]相等,那么只要dp[i][j-1]是true,dp[i][j]就是true。

初始时候,s1=空串,s2=空串,组成的s3也是空串,dp[0][0]=true;这里的循环i和j表示的是前i个字符和前j个字符,当比较字符是否相等时,索引为i-1,j-1,i+j-1。

动态规划-leetcode#97-交错字符串相关推荐

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

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

  2. LeetCode 97: 交错字符串

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

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

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

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

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

  5. 97. 交错字符串 java解决

    题目描述: 难度:中等 相关标签:字符串.动态规划给定三个字符串s1.s2.s3,请你帮忙验证s3是否是由s1和s2 交错 组成的. 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会 ...

  6. 力扣刷题笔记 97. 交错字符串 C#

    7月18日签到题,题目如下: 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入:s1 = "aabcc", s2 = & ...

  7. C#LeetCode刷题-字符串

    字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...

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

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

  9. C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解

    版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...

最新文章

  1. spring boot +QQmail
  2. python循环语句-python中的for循环语句怎么写
  3. 项目上传github步骤
  4. 重学java基础第八课:硬件和冯洛伊曼系统
  5. 十强决赛即将拉开帷幕!TECHSPARK星星之火IT创新大赛诚邀您观赛
  6. Java中从String到Long的转换
  7. pandas缺失值处理
  8. Chrome 跨域调试
  9. eslint 快捷键设置_eslint的妙用和快捷修复
  10. 安装打印机时LPT,COM、USB端口区别
  11. 怎么用python画世界地图_python如何画出漂亮的地图?
  12. 锂电池充电原理:充电电压电流的选择方法
  13. qt bianyishiliechengxu cube
  14. MySQL期末复习题(题库)
  15. 如何计算机闲置虚拟机算法_利用闲置计算机的最佳方法
  16. Cesium模型制作服务
  17. VUE.JS 实现图片随鼠标变换的动画效果
  18. java的包资源管理器怎么弄出来_eclipse包资源管理器java项目,包,类重命名 来学习吧...
  19. “无聊猿” BAYC 的内忧与外患
  20. 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二

热门文章

  1. 使用VMware虚拟机MikroTik RouterOS系统搭建PPPoE服务器
  2. 体检导检排队系统智能导检
  3. lenovo计算机无法启动,联想电脑无法开机一直停留在联想LOGO
  4. 各种开发架构技术图谱
  5. PCL教程指南-估计点云法向量
  6. 深度学习: ILSVRC竞赛(ImageNet竞赛)
  7. Windows 下 Gambit 启动脚本
  8. 高质量pdf转换ppt软件绿色版
  9. arduino四位数码管 同时输出四位数字
  10. 写了上百篇文章后,对文章排版和文章曝光的一些思考