【String】 B034 contagem de sapos (contagem de caracteres)

1. Título Descrição

Dê a você um croakOfFrogs de string, que representa uma combinação de sons de sapo (string "croak") de diferentes sapos. Como pode haver vários sapos coaxando ao mesmo tempo, vários "coaxes" são misturados no croakOfFrogs. Por favor, retorne o número mínimo de sapos diferentes necessários para todos os sapos na sequência simulada.

Nota: Para emitir o croak "croak", o sapo deve emitir as cinco letras 'c', 'r', 'o', 'a', 'k' sequencialmente. Se todas as cinco letras não forem exibidas, elas não serão exibidas.

Se a string croakOfFrogs não for uma mistura de caracteres "croak" válidos, retorne -1.

输入:croakOfFrogs = "crcoakroak"
输出:2 
解释:最少需要两只青蛙,“呱呱” 声用黑体标注
第一只青蛙 "crcoakroak"
第二只青蛙 "crcoakroak"

Método 1: contagem

  • Como em uma sequência legal, o número de ocorrências de cada caractere deve ser igual.
  • Se houver uma ordem de caracteres diferente e o número for maior que os caracteres da ordem relativa anterior, essa sequência será ilegal.
  • Quando o número de caracteres é legal, o número de sapos necessários depende apenas da diferença entre o número de caracteres c e k.
    • Por exemplo: quando um sapo chama novamente, enquanto outro sapo também está chamando, o número de sapos necessários neste momento será 2.
public int minNumberOfFrogs(String croakOfFrogs) {
    int[] c = new int[5];
    char[] s = croakOfFrogs.toCharArray();
    int max = 0;
    for (char ch : s) {
        if (ch == 'c') c[0]++;
        if (ch == 'r') c[1]++;
        if (ch == 'o') c[2]++;
        if (ch == 'a') c[3]++;
        if (ch == 'k') c[4]++;
        for (int i = c.length-1; i >= 1; i--) {
            if (c[i] > c[i-1])
                return -1;
        }
        max = Math.max(max, c[0]-c[4]);
    }
    return c[0] == c[4] ? max : -1;
}

Análise de complexidade

  • Complexidade do tempo: O ( n ) O (n)
  • Complexidade do espaço: O ( 1 ) O(1)

fwc

Publicado 714 artigos originais · elogiado 199 · 50.000+ visualizações

Acho que você gosta

Origin blog.csdn.net/qq_43539599/article/details/105617572
Recomendado
Clasificación