leetcode 424. 替换后的最长重复字符(滑动窗口)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 424. 替换后的最长重复字符(滑动窗口)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給你一個僅由大寫英文字母組成的字符串,你可以將任意位置上的字符替換成另外的字符,總共可最多替換 k 次。在執行上述操作后,找到包含重復字母的最長子串的長度。
注意:字符串長度 和 k 不會超過 104。
示例 1:
輸入:s = “ABAB”, k = 2
輸出:4
解釋:用兩個’A’替換為兩個’B’,反之亦然
代碼
class Solution {public int characterReplacement(String s, int k) {int[] cnt=new int[26];int l=0,r=0,maxn=0;while (r<s.length()){cnt[s.charAt(r)-'A']++;maxn= Math.max(maxn,cnt[s.charAt(r)-'A']);//維護最大出現次數if(r-l+1-maxn>k)//檢查滑動窗口里面的元素是否合法{cnt[s.charAt(l)-'A']--;l++;}r++;}return r-l;} }總結
以上是生活随笔為你收集整理的leetcode 424. 替换后的最长重复字符(滑动窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到杀鸡杀羊好不好
- 下一篇: leetcode 480. 滑动窗口中位