力扣(LeetCode)算法_C++——替换后的最长重复字符

给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。

在执行上述操作后,返回包含相同字母的最长子字符串的长度。

示例 1:

输入:s = "ABAB", k = 2

输出:4

解释:用两个'A'替换为两个'B',反之亦然。

示例 2:

输入:s = "AABABBA", k = 1

输出:4

解释:

将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。

子串 "BBBB" 有最长重复字母, 答案为 4。

可能存在其他的方法来得到同样的结果。

cpp 复制代码
    int characterReplacement(string s, int k) {
        //int ans = 0;
        int left = 0, right = 0, maxCnt = 0;
        int fre[26] = {0};
        while (right < s.size()) {
            fre[s[right] - 'A']++;
            maxCnt = max(maxCnt, fre[s[right] - 'A']);

            if (right - left + 1 - maxCnt > k) {
                //ans = ans < (right - left) ? (right - left) : ans;
                fre[s[left] - 'A']--;
                left++;
            }

            right++;
        }

        //ans = ans < (right - left) ? (right - left) : ans;
        //return ans;
        return right - left;
    }
相关推荐
小白编程锤炼5 小时前
深入解析:质量门禁
人工智能·算法·架构·vibe-coding
程序leo源5 小时前
C语言知识总结
c语言·开发语言·c++·经验分享·笔记·青少年编程·c#
沫璃染墨5 小时前
二叉搜索树完全指南:从核心原理到增删查改全实现
开发语言·c++
‎ദ്ദിᵔ.˛.ᵔ₎5 小时前
C++哈希表
数据结构·c++·散列表
yongui478346 小时前
基于 GA 优化的 BP 神经网络算法分析与 MATLAB 实现
神经网络·算法·matlab
想学会c++6 小时前
单例模式笔记总结
c++·笔记·单例模式
阿旭超级学得完6 小时前
C++11(初始化)
java·开发语言·数据结构·c++·算法
黎阳之光6 小时前
黎阳之光:视频孪生硬核赋能,共启数字孪生水利监测新征程
大数据·人工智能·算法·安全·数字孪生
云淡风轻~窗明几净7 小时前
关于角谷猜想的五行小猜想
数据结构·算法
广州灵眸科技有限公司7 小时前
瑞芯微(EASY EAI)RV1126B openclaw部署接入飞书
linux·网络·人工智能·算法·yolo·飞书