424 替換後的最長重複字元

2021-10-18 19:23:28 字數 836 閱讀 1363

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

注意:字串長度 和 k 不會超過 10**4。

右指標移動並更新資料

判斷是否滿足左指標移動條件

最終以左右指標差為答案(1)陣列:用於記錄字母重複字數,長26

(2)ord():與陣列索引適配

class

solution

:def

characterreplacement

(self, s:

str, k:

int)

->

int:

num =[0

]*26 n =

len(s)

maxn = left = right =

0while right < n:

num[

ord(s[right])-

ord(

"a")]+=

1 maxn =

max(maxn, num[

ord(s[right])-

ord(

"a")])

if right - left +

1- maxn > k:

num[

ord(s[left])-

ord(

"a")]-=

1 left +=

1 right +=

1return right - 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 不會超過 104。示例 1 輸入 s abab k 2 輸出 4 解釋 用兩個 a 替換為兩個 b 反之亦然。示例 2 輸...