动态规划-leetcode#97-交错字符串
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-交错字符串相关推荐
- LeetCode 97交错字符串(动态规划)
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复制ip地址&94 ...
- LeetCode 97: 交错字符串
这里我们考虑用 s1和 s2的某个前缀是否能形成 s3 的一个前缀. 这个方法的前提建立于:判断一个 s3的前缀(用下标 k表示),能否用 s1和 s2 的前缀(下标分别为 i和 j),仅仅依赖于 s ...
- LeetCode 97. 交错字符串(动态规划)
题目描述 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbbc ...
- LeetCode 97. 交错字符串(DP)
1. 题目 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbb ...
- 97. 交错字符串 java解决
题目描述: 难度:中等 相关标签:字符串.动态规划给定三个字符串s1.s2.s3,请你帮忙验证s3是否是由s1和s2 交错 组成的. 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会 ...
- 力扣刷题笔记 97. 交错字符串 C#
7月18日签到题,题目如下: 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入:s1 = "aabcc", s2 = & ...
- C#LeetCode刷题-字符串
字符串篇 # 题名 刷题 通过率 难度 3 无重复字符的最长子串 24.6% 中等 5 最长回文子串 22.4% 中等 6 Z字形变换 35.8% 中等 8 字符串转整数 (atoi) 15.3% 中 ...
- 【JAVA】交错字符串——力扣每日一题(六)(2020.07.18)
目录 题目:97. 交错字符串 思路 如果你从本文中学习到丝毫知识,那么请您点点关注.点赞.评论和收藏 大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人,个人博 ...
- C#版(击败97.76%的提交) - Leetcode 557. 反转字符串中的单词 III - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. Leetcod ...
最新文章
- spring boot +QQmail
- python循环语句-python中的for循环语句怎么写
- 项目上传github步骤
- 重学java基础第八课:硬件和冯洛伊曼系统
- 十强决赛即将拉开帷幕!TECHSPARK星星之火IT创新大赛诚邀您观赛
- Java中从String到Long的转换
- pandas缺失值处理
- Chrome 跨域调试
- eslint 快捷键设置_eslint的妙用和快捷修复
- 安装打印机时LPT,COM、USB端口区别
- 怎么用python画世界地图_python如何画出漂亮的地图?
- 锂电池充电原理:充电电压电流的选择方法
- qt bianyishiliechengxu cube
- MySQL期末复习题(题库)
- 如何计算机闲置虚拟机算法_利用闲置计算机的最佳方法
- Cesium模型制作服务
- VUE.JS 实现图片随鼠标变换的动画效果
- java的包资源管理器怎么弄出来_eclipse包资源管理器java项目,包,类重命名 来学习吧...
- “无聊猿” BAYC 的内忧与外患
- 武汉科技大学java题库答案_武汉科技大学 java实验报告 实验二