91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

leetcode如何求替換后的最長重復字符

發布時間:2021-12-16 09:41:08 來源:億速云 閱讀:133 作者:小新 欄目:大數據

這篇文章主要介紹了leetcode如何求替換后的最長重復字符,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

給你一個僅由大寫英文字母組成的字符串,你可以將任意位置上的字符替換成另外的字符,總共可最多替換 次。在執行上述操作后,找到包含重復字母的最長子串的長度。

注意:
字符串長度 和 不會超過 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:=0    max:=0    maxSame:=0
   for end:=0;end<len(s);end++{        win[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如何求替換后的最長重復字符”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙里县| 温州市| 和静县| 仁布县| 宜宾市| 黑水县| 贞丰县| 南澳县| 大田县| 淳安县| 宁武县| 祁阳县| 黔东| 韶关市| 临西县| 犍为县| 甘肃省| 汝南县| 略阳县| 阿拉尔市| 灵山县| 盐源县| 聂荣县| 秦皇岛市| 万年县| 洪湖市| 固镇县| 汤原县| 黎川县| 杭锦旗| 琼结县| 浙江省| 类乌齐县| 平江县| 芜湖县| 渭南市| 南靖县| 水富县| 平潭县| 洛隆县| 景泰县|