comments | difficulty | edit_url | tags | ||
---|---|---|---|---|---|
true |
困难 |
|
给你两个字符串 s
和 pattern
。
如果一个字符串 x
修改 至多 一个字符会变成 y
,那么我们称它与 y
几乎相等 。
请你返回 s
中下标 最小 的 子字符串 ,它与 pattern
几乎相等 。如果不存在,返回 -1
。
子字符串 是字符串中的一个 非空、连续的字符序列。
示例 1:
输入:s = "abcdefg", pattern = "bcdffg"
输出:1
解释:
将子字符串 s[1..6] == "bcdefg"
中 s[4]
变为 "f"
,得到 "bcdffg"
。
示例 2:
输入:s = "ababbababa", pattern = "bacaba"
输出:4
解释:
将子字符串 s[4..9] == "bababa"
中 s[6]
变为 "c"
,得到 "bacaba"
。
示例 3:
输入:s = "abcd", pattern = "dba"
输出:-1
示例 4:
输入:s = "dde", pattern = "d"
输出:0
提示:
1 <= pattern.length < s.length <= 3 * 105
s
和pattern
都只包含小写英文字母。
进阶:如果题目变为 至多
k
个 连续 字符可以被修改,你可以想出解法吗?