3853. Merge Close Characters
You are given a string s consisting of lowercase English letters and an integer k.
Two equal characters in the current string s are considered close if the distance between their indices is at most k.
When two characters are close, the right one merges into the left. Merges happen one at a time, and after each merge, the string updates until no more merges are possible.
Return the resulting string after performing all possible merges.
Note: If multiple merges are possible, always merge the pair with the smallest left index. If multiple pairs share the smallest left index, choose the pair with the smallest right index.
Example 1:
Input: s = "abca", k = 3
Output: "abc"
Explanation:
- Characters
'a'at indicesi = 0andi = 3are close as3 - 0 = 3 <= k. - Merge them into the left
'a'ands = "abc". - No other equal characters are close, so no further merges occur.
Example 2:
Input: s = "aabca", k = 2
Output: "abca"
Explanation:
- Characters
'a'at indicesi = 0andi = 1are close as1 - 0 = 1 <= k. - Merge them into the left
'a'ands = "abca". - Now the remaining
'a'characters at indicesi = 0andi = 3are not close ask < 3, so no further merges occur.
Example 3:
Input: s = "yybyzybz", k = 2
Output: "ybzybz"
Explanation:
- Characters
'y'at indicesi = 0andi = 1are close as1 - 0 = 1 <= k. - Merge them into the left
'y'ands = "ybyzybz". - Now the characters
'y'at indicesi = 0andi = 2are close as2 - 0 = 2 <= k. - Merge them into the left
'y'ands = "ybzybz". - No other equal characters are close, so no further merges occur.
Constraints:
1 <= s.length <= 1001 <= k <= s.lengthsconsists of lowercase English letters.