给你一个字符串 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 left = 0;
int[] temp = new int[26];
//右指针
int right = 0;
//长度
int length = 0;
for(;right < s.length();right++){
temp[s.charAt(right) - 'a']++;
if(!judge(temp)){
length = Math.max(right - left + 1,length);
// System.out.println("print length : " + length + "; right = "+ right + "; left = "+ left);
} else {
temp[s.charAt(left) - 'a']--;
left++;
// System.out.println("print length : " + length + "; left = "+ left + "; right = "+ right);
}
}
return length;
}
//判断是否最多出现两次
private boolean judge(int[] temp){
for(int i = 0; i < temp.length ;i++){
if(temp[i] > 2){
return true;
}
}
return false;
}
}