You are given a string s made of uppercase English letters and an integer k. You can pick any character of s and change it into any other uppercase letter. You can do this at most k times.
Return the length of the longest substring made of one repeated letter that you can get after these changes.
A substring is a run of consecutive characters of s.
Example 1:
Input: s = "ABAB", k = 2 Output: 4 Explanation: Change both A's into B's to get "BBBB", or both B's into A's to get "AAAA".
Example 2:
Input: s = "AABABBA", k = 1 Output: 4 Explanation: Change the A at index 3 into a B to get "AABBBBA": the substring "BBBB" has length 4. Changing the B at index 2 gives "AAAA" instead. No single change gives a run of 5.
Example 3:
Input: s = "ABBBAABBBBA", k = 2 Output: 9 Explanation: Change the A's at indexes 4 and 5 into B's: indexes 1 to 9 become "BBBBBBBBB". Any longer substring holds a third A.
Constraints:
1 <= s.length <= 105sis made of uppercase English letters only (A to Z).0 <= k <= s.length
Note:
Your algorithm should run in O(n) time, where n is the length of s, and use O(1) extra space: one count for each of the 26 letters.
Free plan: 30 tutor messages. Premium is unlimited.
