給你乙個僅由大寫英文本母組成的字串,你可以將任意位置上的字元替換成另外的字元,總共可最多替換 k 次。在執行上述操作後,找到包含重複字母的最長子串的長度。
注意:字串長度 和 k 不會超過 104。
示例 1:
輸入:s = "abab", k = 2示例 2:輸出:4
解釋:用兩個'a'替換為兩個'b',反之亦然。
輸入:s = "aababba", k = 1py輸出:4
解釋:將中間的乙個'a'替換為'b',字串變為 "aabbbba"。
子串 "bbbb" 有最長重複字母, 答案為 4。
將任意位置上的字元替換成另外的字元,總共可最多替換 k 次的符合條件的子字串
<=>
len(substr)-max(counter(substr))<=k
<=>
r-l+1-maxcnt<=k
tle 36/37
classsolution:
from collections import
counter
def characterreplacement(self, s: str, k: int) ->int:
l=r=0
res=0
while rif len(s)-lbreak
if r-l+1-max(counter(s[l:r+1]).values())>k:
l+=1res=max(res,r-l+1)
r+=1
return res
optimization,use dictionary===>ac:
classsolution:
from collections import
counter
import
string
def characterreplacement(self, s: str, k: int) ->int:
l=r=0
res=0
maxchar=0
cnt={}
for char in
ascii_uppercase:
cnt[char]=0
while rif len(s)-lbreak
cnt[s[r]]+=1maxchar=max(cnt.values())
if r-l+1-maxchar>k:
cnt[s[l]]-=1l+=1res=max(res,r-l+1)
r+=1
return res
c++
classsolution
res=max(res,r-l+1
); r++;
}return
res;
}};
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 輸...