2025华为OD机试A卷-最左侧冗余覆盖子串(JAVA、Python、JavaScript、C++、C)
题目描述
给定两个字符串s1和s2和正整数K,其中s1长度为n1,s2长度为n2,在s2中选一个子串,满足:
- 该子串长度为n1+k
- 该子串中包含s1中全部字母,
- 该子串每个字母出现次数不小于s1中对应的字母,
我们称s2以长度k冗余覆盖s1,给定s1,s2,k,求最左侧的s2以长度k冗余覆盖s1的子串的首个元素的下标,如果没有返回**-1**。
输入描述
输入三行,第一行为s1,第二行为s2,第三行为k,s1和s2只包含小写字母
备注
- 0 ≤ len(s1) ≤ 1000000
- 0 ≤ len(s2) ≤ 20000000
- 0 ≤ k ≤ 1000
输出描述
最左侧的s2以长度k冗余覆盖s1的子串首个元素下标,如果没有返回**-1。**
示例1
输入
ab
aabcd
1
- 1
- 2
- 3
输出
0
- 1
说明
子串aab和abc符合要求,由于aab在abc的左侧,因此输出aab的下标:0
示例2
输入
abc
dfs
10
- 1
- 2
- 3
输出
-1
- 1
说明
s2无法覆盖s1,输出 -1
解题思路+代码
📢 资源内容说明
《华为OD机试2025A卷全解析》(持续更新版)包含:
✅ 真题分类:按算法类型划分高频考点(动态规划/字符串处理/图论等)
✅ 代码模板:提供Python/Java/C++/Js/c五语言实现,含详细注释与测试用例
✅ 解题策略:每道题包含「思路图解+复杂度分析+同类题变形建议」
🎯 资源亮点
▸ 同步2025年新版A卷真题(含示例1/2/3全解析)
▸ 配套《2024年ABCDE卷真题+代码+解析》
📥 获取方式
-
站内获取:
➠ 点击头像 → 查看【个人简介】
➠ 进入帖子查看https://bbs.youkuaiyun.com/topics/619691802 -
互动解锁:
▸ 评论区参与技术讨论(如提交更优解法)
▸ 三连本文章可获取ABCD卷
3230

被折叠的 条评论
为什么被折叠?



