package com.daily.daily20210202;
/**
* @Project: dailyCode
* @Site: http://www.zhao1iang.club/
* @Copyright: ©CodeLamp
* @Author: zhaoliang
* @Create: 2021-02-02 10:36
* @Desc: 替换后的最长重复字符
**/
public class characterReplacement {
//给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换k次。在执行上述操作后,找到包含重复字母的最长子串的长度。
//
//注意:字符串长度 和 k 不会超过104。
public int characterReplacement(String s ,int k){
int index=0;
int max=0;
int len =0;
int[] check = new int[26];
for (int j = 0; j <s.length() ; j++) {
check[s.charAt(j) -'A']++;
int cnt = check[s.charAt(j) -'A'];
max = Math.max(max,cnt);
while (j -index+1 - max >k){
check[s.charAt(index) -'A']--;
index++;
}
len = Math.max(len,j-index+1);
}
return len;
}
}
日常刷题-替换后的最长重复字符
最新推荐文章于 2024-04-24 13:35:29 发布