424 替換後的最長重複字元

2021-10-18 17:20:23 字數 918 閱讀 6112

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

注意:字串長度 和 k 不會超過 104。

示例 1:

輸入:s = "abab", k = 2

輸出:4

解釋:用兩個'a'替換為兩個'b',反之亦然。

示例 2:

輸入:s = "aababba", k = 1

輸出:4

解釋:將中間的乙個'a'替換為'b',字串變為 "aabbbba"。

子串 "bbbb" 有最長重複字母, 答案為 4。

historycharmax 儲存滑動視窗內相同字母出現次數的 歷史 最大值,通過判斷視窗寬度 (right - left + 1)是否大於 historycharmax + historycharmax+k 來決定視窗是否做滑動,否則視窗就擴張。

class

solution

char

chars = s.

tochararray()

;int left =0;

int right =0;

//儲存滑動視窗內相同字母出現次數的歷史最大值

int historycharmax =0;

//視窗擴張, left不動,right++

for(right =

0; right < chars.length; right++)}

return chars.length - left;

}}

424 替換後的最長重複字元

給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和 k 不會超過 104。示例 1 輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩個 b 反之亦然。示例 2 輸...

424 替換後的最長重複字元

給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和 k 不會超過 104。示例 1 輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩個 b 反之亦然。示例 2 輸...

424 替換後的最長重複字元

給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和 k 不會超過 10 4。右指標移動並更新資料 判斷是否滿足左指標移動條件 最終以左右指標差為答案 1 陣列 用於記錄字母重複字...