当前位置:网站首页>算法--交错字符串(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 的情况下应该怎么做
边栏推荐
猜你喜欢
[email protected] 594/[email prote"/>RNA核糖核酸修饰Alexa 568/[email protected] 594/[email prote

CS kill-free pose

Anaconda 虚拟环境迁移

危化企业双重预防机制数字化建设进入全面实施阶段

百利药业IPO过会:扣非后年亏1.5亿 奥博资本是股东

Network protocol-TCP, UDP difference and TCP three-way handshake, four wave

CS免杀姿势

消除对特权账户的依赖使用Kaniko构建镜像

EasyCVR平台海康摄像头语音对讲功能配置的3个注意事项

Line the last time the JVM FullGC make didn't sleep all night, collapse
随机推荐
Node version switching tool NVM and npm source manager nrm
建模该从哪一步开始?给你分析,给零基础的你一些学习建议
怎么将自己新文章自动推送给自己的粉丝(巨简单,学不会来打我)
Pytorch GPU 训练环境搭建
入门3D建模基础教程详细分解
ESP8266-Arduino编程实例-BH1750FVI环境光传感器驱动
charles配置客户端请求全部不走缓存
PHP according to the longitude and latitude calculated distance two points
涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流
ERROR: You don‘t have the SNMP perl module installed.
利用 rpush 和 blpop 实现 Redis 消息队列
matplotlib画polygon, circle
622 设计循环队列——Leetcode天天刷【循环队列,数组模拟,双指针】(2022.8.2)
详解AST抽象语法树
【飞控开发高级教程4】疯壳·开源编队无人机-360 度翻滚
LeetCode 899. 有序队列
使用 ReportLab 绘制 PDF
CS kill-free pose
relocation R_X86_64_PC32 against,/usr/bin/ld: final link failed: Bad value
揭秘5名运维如何轻松管理数亿级流量系统