Java atingir máximo de caracteres repetidos substituídos após LeetCode 424

424. Os maiores caracteres repetidos após a substituição

Dar-lhe uma string composta de letras maiúsculas somente, você pode estar em qualquer lugar sobre os caracteres substituídos por outros caracteres, pode substituir-se a um total de k vezes. Depois de realizar a operação acima é repetido para encontrar o comprimento das cadeias mais longas de letter sub-contendo.

Nota: O
comprimento da corda k e não mais do que 104.

Exemplo 1:

Entrada:
S = "ABAB", K = 2

Saída:
4

Explicação:
substituído com dois 'A' dois 'B', e vice-versa.
Exemplo 2:

Entrada:
S = "AABABBA" ,. 1 K =

Saída:
4

Explicação:
No meio de um 'A' é substituído por 'B', a corda se torna "AABBBBA".
Substring "BBBB" tem as cartas mais longa repetidas, a resposta é quatro.

class Solution {
     public int characterReplacement(String s, int k) {
        char[] chars = s.toCharArray();
        int width = 0;
        for (int left = 0, right = 0, counts[] = new int[26]; right < chars.length; right++) {
            width = Math.max(width, ++counts[chars[right] - 'A'] + k);
            while (right - left + 1 > width)
                counts[chars[left++] - 'A']--;
        }
        return Math.min(chars.length, width);
    }
}
Lançado 1537 artigos originais · ganhou elogios 20000 + · vistas 2,11 milhões +

Acho que você gosta

Origin blog.csdn.net/a1439775520/article/details/104885849
Recomendado
Clasificación