LeetCode424. 替换后的最长重复字符

class Solution {
    
    
public:
    int characterReplacement(string s, int k) {
    
    
        int map[26] = {
    
     0 };

        int left = 0;
        int right = 0;
        int max_cnt = 0;
        int res = 0;

        while (right < s.size())
        {
    
    
            map[s[right] - 'A']++;
            max_cnt = max(max_cnt, map[s[right] - 'A']);

            if (right - left + 1 > max_cnt + k)
            {
    
    
                map[s[left] - 'A']--;
                left++;
            }
            else
            {
    
    
                res = max(res, right - left + 1);
            }
            right++;
        }
        return res;
    }
};

猜你喜欢

转载自blog.csdn.net/qq_32862515/article/details/109235824