当前位置:网站首页>算法--交错字符串(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 的情况下应该怎么做
边栏推荐
- LeetCode 622. Designing Circular Queues
- 149. The largest number on a straight line, and check the set
- EMQX Newsletter 2022-07|EMQX 5.0 正式发布、EMQX Cloud 新增 2 个数据库集成
- Solidity智能合约开发 — 4.1-合约创建和函数修饰器
- JMeter笔记5 |Badboy使用和录制
- async 和 await 原来这么简单
- Statistical machine learning 】 【 linear regression model
- Anaconda virtual environment migration
- 不要再用if-else
- 按需视觉识别:愿景和初步方案
猜你喜欢

2022 年值得尝试的 7 个 MQTT 客户端工具

「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧

基础软件与开发语言开源论坛| ChinaOSC

【STM32】标准库-自定义BootLoader

按需视觉识别:愿景和初步方案

RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸

后台图库上传功能

RNA核糖核酸修饰RNA-HiLyte FluorTM 405荧光染料|RNA-HiLyte FluorTM 405

【leetcode】剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口,双指针)

2022 CCF中国开源大会会议通知(第三轮)
随机推荐
glide set gif start stop
简易电子琴设计(c语言)
Detailed steps for tensorflow-gpu2.4.1 installation and configuration
Detailed explanation of JWT
告诉你0基础怎么学好游戏建模?
RNA核糖核酸修饰荧光染料|HiLyte Fluor 488/555/594/647/680/750标记RNA核糖核酸
【STM32】标准库-自定义BootLoader
标准C语言学习总结11
宁德时代2号人物黄世霖辞任副董事长:身价1370亿
CS免杀姿势
Jingdong cloud released a new generation of distributed database StarDB 5.0
FreeRTOS中级篇
边缘盒子+时序数据库,美的数字化平台 iBuilding 背后的技术选型
EasyCVR平台海康摄像头语音对讲功能配置的3个注意事项
华为设备配置VRRP负载分担
Anaconda 虚拟环境迁移
余弦距离介绍
LeetCode 1374. 生成每种字符都是奇数个的字符串
友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
RNA核糖核酸修饰RNA-HiLyte FluorTM 405荧光染料|RNA-HiLyte FluorTM 405