中等
给你一个由小写英文字母组成的字符串 s 和一个整数 k。
在 当前 字符串 s 中,如果两个 相同 字符之间的下标距离 至多 为 k,则认为它们是 靠近 的。
当两个字符 靠近 时,右侧的字符会合并到左侧。合并操作 逐个 发生,每次合并后,字符串都会更新,直到无法再进行合并为止。
返回执行所有可能合并后的最终字符串。
注意:如果可以进行多次合并,请始终选择 左侧下标最小 的那一对进行合并。如果多对字符共享最小的左侧下标,请选择 右侧下标最小 的那一对。
示例 1:
输入: s = "abca", k = 3
输出: "abc"
解释:
- 下标
i = 0和i = 3处的字符'a'是靠近的,因为3 - 0 = 3 <= k。 - 将它们合并到左侧的
'a',得到s = "abc"。 - 没有其他相同的字符是靠近的,因此不再发生合并。
示例 2:
输入: s = "aabca", k = 2
输出: "abca"
解释:
- 下标
i = 0和i = 1处的字符'a'是靠近的,因为1 - 0 = 1 <= k。 - 将它们合并到左侧的
'a',得到s = "abca"。 - 现在剩余的字符
'a'分别位于下标i = 0和i = 3,它们不再靠近,因为k < 3,所以不再发生合并。
示例 3:
输入: s = "yybyzybz", k = 2
输出: "ybzybz"
解释:
- 下标
i = 0和i = 1处的字符'y'是靠近的,因为1 - 0 = 1 <= k。 - 将它们合并到左侧的
'y',得到s = "ybyzybz"。 - 现在下标
i = 0和i = 2处的字符'y'是靠近的,因为2 - 0 = 2 <= k。 - 将它们合并到左侧的
'y',得到s = "ybzybz"。 - 没有其他相同的字符是靠近的,因此不再发生合并。
提示:
1 <= s.length <= 1001 <= k <= s.lengths由小写英文字母组成。