leetcode97 交错字符串
给定三个字符串 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 交错字符串相关推荐
- leetcode97. 交错字符串(动态规划)
给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbbca&quo ...
- LeetCode 97交错字符串(动态规划)
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复制ip地址&94 ...
- LeetCode 97: 交错字符串
这里我们考虑用 s1和 s2的某个前缀是否能形成 s3 的一个前缀. 这个方法的前提建立于:判断一个 s3的前缀(用下标 k表示),能否用 s1和 s2 的前缀(下标分别为 i和 j),仅仅依赖于 s ...
- 【JAVA】交错字符串——力扣每日一题(六)(2020.07.18)
目录 题目:97. 交错字符串 思路 如果你从本文中学习到丝毫知识,那么请您点点关注.点赞.评论和收藏 大家好,我是爱做梦的鱼,我是东北大学大数据实验班大三的小菜鸡,非常渴望优秀,羡慕优秀的人,个人博 ...
- 【数据结构与算法】之深入解析“交错字符串”的求解思路与算法示例
一.题目要求 给定三个字符串 s1.s2.s3,请帮忙验证 s3 是否是由 s1 和 s2 交错组成的. 两个字符串 s 和 t 交错的定义与过程如下,其中每个字符串都会被分割成若干非空子字符串: s ...
- 97. Interleaving String 交错字符串
Title 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbb ...
- 交错字符串Python解法
给定三个字符串 s1.s2.s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的. 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串: s = ...
- LeetCode 97. 交错字符串(DP)
1. 题目 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbb ...
- LeetCode 97. 交错字符串(动态规划)
题目描述 给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的. 示例 1: 输入: s1 = "aabcc", s2 = "dbbc ...
最新文章
- JAVA连接SQL Server数据库的端口配置操作步骤
- 2021(上)软考打印准考证时间及操作步骤
- 无所不在的IM,网易云信潜心为移动社交时代打好地基
- Python操作MongoDB - 极简教程
- 工作405-关于vue组件开发过程中一直报错:This relative module was not found:
- php是根据html中的值查询数据条件_FleaPHP框架数据库查询条件($conditions)写法总结...
- eclipse 设置虚拟机内存(可用)
- java截取utf8字符串_java中常用的字符串的截取方法
- [我的成长:1004期]春节快乐
- mkdir命令(转)
- 计算机组成原理期末考试题库(超级多的那种)
- 悬赏任务发布平台系统源码|威客任务网站源码PHP开源版
- 中国科技大学计算机系导师,中国科学技术大学
- java实现getch_Java中是否有C++中的getch()等效项? - java
- 时间管理专题_软件篇02
- Scikit-learn实战之最近邻算法
- MongoDb查询语句($ne $in )
- 如何使用IOS自动化测试工具UIAutomation
- getAttribute(),setAttribute()的方法使用以及区别。
- SP业务全线回暖导致华友光线合作失败
热门文章
- 运维工程师绩效考核表_IT运维存在问题及改进
- js 获取域名_RapidDNS域名查询如何联动Goby
- 人工神经网络_制作属于自己的人工神经网络
- __thread 和 __typeof__关键字
- linux C 获取日期时间
- mysql client 未开启_Django+mysqlclient未关闭数据库连接
- winform 判断控件有没有被遮挡_编程入门基础之 winform(2)
- 【转】ABP源码分析十二:本地化
- 【转】ELK是什么能做什么怎么做
- Java并发:线程共享变量可见性原理