当前位置:网站首页>算法--交错字符串(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 的情况下应该怎么做
边栏推荐
- 调用EasyCVR云台控制接口时,因网络延迟导致云台操作异常该如何解决?
- 机器学习中专业术语的个人理解与总结(纯小白)
- ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
- Go语言为任意类型添加方法
- async 和 await 原来这么简单
- Detailed demonstration pytorch framework implementations old photo repair (GPU)
- Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
- pytorch框架实现老照片修复功能详细演示(GPU版)
- 涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流
- The sword refers to Offer II 044. The maximum value of each level of the binary tree-dfs method
猜你喜欢
随机推荐
EasyCVR平台海康摄像头语音对讲功能配置的3个注意事项
JWT详解
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
CS kill-free pose
Standard C language learning summary 11
ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
Solidity智能合约开发 — 4.1-合约创建和函数修饰器
149. The largest number on a straight line, and check the set
亚马逊云科技 Build On 2022 - AIot 第二季物联网专场实验心得
从腾讯阿里等大厂出来创业搞 Web3、元宇宙的人在搞什么
开源生态研究与实践| ChinaOSC
Teach you to locate online MySQL slow query problem hand by hand, package teaching package meeting
FreeRTOS Intermediate
Kettle 读取 Excel 数据输出到 Oracle 详解
Auto.js实现朋友圈自动点赞
LeetCode 622. Designing Circular Queues
ECCV2022 | 用于视频问题回答的视频图Transformer
谁的孙子最多II
net-snmp编译报错:/usr/bin/ld: cannot find crti.o: No such file or directory
傅里叶变换(深入浅出)









