【华为OD机试真题 Java】最左侧冗余覆盖子串(100%通过+全网最详细注释)

前言:本专栏将持续更新华为OD机试题目,并进行详细的分析与解答,包含完整的代码实现,希望可以帮助到正在努力的你。关于OD机试流程、面经、面试指导等,如有任何疑问,欢迎联系我,wechat:steven_moda;email:[email protected];备注:CSDN。

题目描述

给定2个字符串s1和s2和正整数k,其中s1长度为n1, s2长度为n2,在s2中选一 个子串,满足:

  • 该子串长度为n1+k

  • 该子串包含s1中全部字母

  • 该子串每个字母的出现次数不小于s1中对应的宇母

我们称s2以长度K.冗余覆盖s1。给定s1、s2和k,求最左侧的s2以长度k冗余覆盖s1的子串的首个元素的下标,如果没有返
回-1

举例:

s1=ab

s2=aabcd

k=1

则子串aab和abc均满足此条件,由于aab在abc的左侧,aab的第一个元素下标为0,因此输出0

输入描述

输入三行,第一行为s1,第二行为s2,第三行为k

s1和s2只包含小写字母

输出描述

最左侧的s2以长度k冗余覆盖s1的子串首个元素的下标,如果没有返回

你可能感兴趣的:(华为OD机试真题,Java版,华为,java,算法,数据结构,面试)