给你两个长度分别为 n 和 m 的字符串 skill 和 station。
skill[i] 表示工人 i 的技能,station[j] 表示工位 j 所支持的技能。
你必须将每一名工人分配到一个互不相同的工位。令 ji 表示分配给工人 i 的工位下标。有效的分配方案必须满足:
0 <= i < n,都有 station[ji] == skill[i]。j0 < j1 < ... < jn - 1。分配方案的间隔是分配给两名相邻工人的工位下标之间的最大差值。换句话说,它等于所有 1 <= i < n 中 ji - ji - 1 的最大值。
如果只有一名工人,则间隔为 0。
返回所有有效分配方案中可能得到的最大间隔。题目保证至少存在一种有效的分配方案。
示例 1:
输入: skill = "aa", station = "aaaa"
输出: 3
解释:
'a' 工位。[0, 3],得到的间隔为 3。示例 2:
输入: skill = "xyz", station = "xyzz"
输出: 2
解释:
j = 0,将工人 1 分配到工位 j = 1。j = 3。[0, 1, 3],相邻工位下标的差值为 [1, 2],因此间隔为 2。示例 3:
输入: skill = "cbc", station = "cbcdbc"
输出: 4
解释:
j = 0,将工人 1 分配到工位 j = 1。j = 5。[0, 1, 5],相邻工位下标的差值为 [1, 4],因此间隔为 4。
提示:
skill.length == nstation.length == m1 <= n <= m <= 105skill 和 station 仅由小写英文字母组成。