leetcode如何求替换后的最长重复字符
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍了leetcode如何求替换后的最长重复字符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。给你一个仅由大写英文字母组成
千家信息网最后更新 2026年11月03日leetcode如何求替换后的最长重复字符
这篇文章主要介绍了leetcode如何求替换后的最长重复字符,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。
注意:
字符串长度 和 k 不会超过 104。
示例 1:
输入:
s = "ABAB", k = 2
输出:
4
解释:
用两个'A'替换为两个'B',反之亦然。
示例 2:
输入:
s = "AABABBA", k = 1
输出:
4
解释:
将中间的一个'A'替换为'B',字符串变为 "AABBBBA"。
子串 "BBBB" 有最长重复字母, 答案为 4。解题思路
1,滑动窗口类题目一般都需要左右两个指针,重点放在理解和优化窗口移动的逻辑
2,注意本题是提换K个字符而不是替换K种
3,显然最大长度=窗口内出现次数最多的字符的次数+K
4,每次移动右指针,更新最大出现次数
5,如果右指针到左指针长度>K+最大出现次数则,移动左指针
func characterReplacement(s string, k int) int {win:=make(map[byte]int)start:=0max:=0maxSame:=0for end:=0;endwin[s[end]]++if win[s[end]]>maxSame{maxSame=win[s[end]]}for end-start+1-maxSame>k{win[s[start]]--start++}fmt.Println("*",start,end,maxSame)if end-start+1>max{max=end-start+1}}return max}
感谢你能够认真阅读完这篇文章,希望小编分享的"leetcode如何求替换后的最长重复字符"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
字符
指针
最长
次数
篇文章
长度
最大
两个
字母
字符串
移动
示例
解释
输入
输出
价值
位置
兴趣
反之亦然
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云信互联网科技有限公司
重生之互联网科技帝国
互联网科技集团
唐信互联网科技
宜安科技 互联网金融
米客互联网科技
奔汉互联网科技
互联网科技产品
中盈科技互联网信息有限公司
须眉科技是互联网公司吗
福州新华互联网科技学校 知乎
以后互联网后是啥科技
湖北码尼互联网科技有限公司电话
互联网金融科技展
深圳市罗太互联网科技有限公司
南博望互联网科技有限公司
怎样加入科技互联网
互联网科技包装股
互联网科技职业技能培训学校
知域互联网科技有限公司官网
南京欣网互联网络科技有限公司
科技互联网公司logo
火传媒上海互联网科技
互联网科技美容
互联网科技英文翻译
美国互联网前沿科技
恒生科技互联网指数分析
阿里互联网科技企业
众联互联网络科技
华人运通互联网科技公司