亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

富川| 集贤县| 微博| 黄大仙区| 通山县| 桂东县| 宜城市| 綦江县| 岑溪市| 博爱县| 阿鲁科尔沁旗| 阳泉市| 行唐县| 班戈县| 县级市| 台湾省| 吉安县| 敦煌市| 辽源市| 陇川县| 滦平县| 洪江市| 萨嘎县| 威宁| 无极县| 郓城县| 许昌县| 年辖:市辖区| 明水县| 台安县| 吉林省| 伊通| 都匀市| 西峡县| 德清县| 孝义市| 军事| 略阳县| 鄂托克前旗| 建昌县| 溆浦县|