每个字符最多出现两次的最长子字符串25-02-10

  • 3090. 每个字符最多出现两次的最长子字符串 #

    给你一个字符串 s ,请找出满足每个字符最多出现两次的最长子字符串,并返回该

    子字符串

    最大 长度。

    示例 1:

    输入: s = “bcbbbcba”

    输出: 4

    解释:

    以下子字符串长度为 4,并且每个字符最多出现两次:"bcbbbcba"

    示例 2:

    输入: s = “aaaa”

    输出: 2

    解释:

    以下子字符串长度为 2,并且每个字符最多出现两次:"aaaa"

    提示:

    • 2 <= s.length <= 100
    • s 仅由小写英文字母组成。

解答 #

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;
    }
}