算法题目
在实际的字符串处理场景中,我们常常会遇到各种匹配问题。现在有这样一个具体的问题:给定两个字符串 s1
和 s2
以及一个正整数 k
,其中 s1
的长度为 n1
,s2
的长度为 n2
。我们需要在 s2
中寻找一个子串,这个子串要满足以下三个条件:
- 该子串的长度必须为
n1 + k
。 - 这个子串要包含
s1
中的全部字母。 - 子串中每个字母出现的次数不能小于
s1
中对应字母出现的次数。
当 s2
中的某个子串满足上述条件时,我们就称 s2
以长度 k
冗余覆盖 s1
。现在要求你找出最左侧的 s2
以长度 k
冗余覆盖 s1
的子串的首个元素的下标,如果不存在这样的子串,则返回 -1。
输入的格式为三行,第一行是字符串 s1
,第二行是字符串 s2
,第三行是正整数 k
,并且 s1
和 s2
只包含小写字母。输出则是最左侧的满足条件的子串的首个元素的下标,如果没有找到,就输出 -1。
例如:
<