当前位置:网站首页>算法--交错字符串(Kotlin)
算法--交错字符串(Kotlin)
2022-08-03 20:01:00 【小米科技Android 研发曹新雨】
题目
给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。
两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:
s = s1 + s2 + … + sn
t = t1 + t2 + … + tm
|n - m| <= 1
交错 是 s1 + t1 + s2 + t2 + s3 + t3 + … 或者 t1 + s1 + t2 + s2 + t3 + s3 + …
注意:a + b 意味着字符串 a 和 b 连接。
输入:s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”
输出:true
输入:s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbbaccc”
输出:false
输入:s1 = “”, s2 = “”, s3 = “”
输出:true
解决思路
解决方法
fun isInterleave(s1: String, s2: String, s3: String): Boolean {
val m = s1.length
val n = s2.length
val l = s3.length
if (m + n != l) {
return false
}
val dp = Array(m + 1) {
Array(n + 1) {
false } }
dp[0][0] = true
for (i in 0..m) {
for (j in 0..n) {
if (i > 0){
dp[i][j] = dp[i - 1][j] && s1[i - 1] == s3[i + j - 1]
}
if (j > 0){
dp[i][j] = dp[i][j] || (dp[i][j - 1] && s2[j - 1] == s3[i + j - 1])
}
}
}
dp.forEach {
it.forEach {
print("$it ") }
println()
}
return dp[m][n]
}
总结
1.这道题做了两天 第一个想不出来思路 想不出来状态转换方程 看了思路
第二天还是没有写出来 调试了半天才写出来
2.一定要注意 为0 的情况下应该怎么做
边栏推荐
- tensorflow-gpu2.4.1安装配置详细步骤
- 从文本匹配到语义相关——新闻相似度计算的一般思路
- 「学习笔记」高斯消元
- ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
- The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
- In-depth understanding of JVM-memory structure
- Internet Download Manager简介及下载安装包,IDM序列号注册问题解决方法
- ESP8266-Arduino编程实例-MCP4725数模转换器驱动
- 入门3D建模基础教程详细分解
- RNA核糖核酸修饰Alexa 568/[email protected] 594/[email prote
猜你喜欢
随机推荐
FreeRTOS中级篇
机器学习中专业术语的个人理解与总结(纯小白)
Go语言为任意类型添加方法
阿洛的反思
149. The largest number on a straight line, and check the set
LeetCode 952. Calculate Maximum Component Size by Common Factor
tensorflow-gpu2.4.1安装配置详细步骤
详解AST抽象语法树
epoll + 线程池 + 前后置服务器分离
149. 直线上最多的点数-并查集做法
【木马免杀】
redis常用命令,HSET,XADD,XREAD,DEL等
Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting
高并发,你真的理解透彻了吗?
PHP according to the longitude and latitude calculated distance two points
Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
Go语言类型与接口的关系
信使mRNA甲基化偶联3-甲基胞嘧啶(m3C)|mRNA-m3C
ECCV 2022 Oral | 满分论文!视频实例分割新SOTA: IDOL
ERROR: You don‘t have the SNMP perl module installed.