3090. 每个字符最多出现两次的最长子字符串 #
给你一个字符串
s,请找出满足每个字符最多出现两次的最长子字符串,并返回该子字符串
的 最大 长度。
示例 1:
输入: s = “bcbbbcba”
输出: 4
解释:
以下子字符串长度为 4,并且每个字符最多出现两次:
"bcbbbcba"。示例 2:
输入: s = “aaaa”
输出: 2
解释:
以下子字符串长度为 2,并且每个字符最多出现两次:
"aaaa"。提示:
2 <= s.length <= 100s仅由小写英文字母组成。
解答 #
class Solution {
public int maximumLengthSubstring(String s) {
int leng=s.length();
char[] arr=s.toCharArray();
int[] count=new int[26];
int left=0;
int len=0;
for(int i=0;i<leng;i++){
count[arr[i]-'a']++;
while(left<i&&count[arr[i]-'a']>2){
count[arr[left++]-'a']--;
}
len=Math.max(i-left+1,len);
}
return len;
}
}