424. 替換後的最長重複字元
給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。
注意:字串長度 和 k 不會超過 104。
示例 1:
輸入:s = "abab", k = 2
輸出:4
解釋:用兩個'a'替換為兩個'b',反之亦然。
示例 2:
輸入:s = "aababba", k = 1
輸出:4
解釋:將中間的乙個'a'替換為'b',字串變為 "aabbbba"。
子串 "bbbb" 有最長重複字母, 答案為 4。
總體思路是維護乙個滑動視窗,同時維護視窗內的字元的最大頻率數,如果這個最大頻率的字元替換k個都不能將整個視窗都替換成重複串,就應該將視窗左邊界右移。
public class solutionchar chararray = s.tochararray();
int left = 0;
int right = 0;
int res = 0;
int maxcount = 0;
int freq = new int[26];
// [left, right) 內最多替換 k 個字元可以得到只有一種字元的子串
while (right < len)
res = math.max(res, right - left+1);
right++;
}return res;
}}
力扣 424 替換後的最長重複字元 雙指標
思路一 由於只有26個候選字母,所以答案一定會在它們之間產生,那麼我記錄每個字母出現的所有位置,然後列舉26個字母,對於每次列舉而言,其實就是乙個雙指標問題。這樣時間複雜度還是o s trle n o strlen o strl en 但是空間複雜度略高。class solution return ...
替換後的最長重複字元
給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換k次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和k不會超過104。輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩個 b 反之亦然。輸入 s aababba k 1...
424 替換後的最長重複字元
給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。注意 字串長度 和 k 不會超過 104。示例 1 輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩個 b 反之亦然。示例 2 輸...