Como funciona a carvão e como ele se relaciona com as letras em inglês?

escolha:

Eu tenho uma tarefa da seguinte forma:

Escrever um método que usa uma matriz de (crescentes) cartas consecutivos como entrada e que retorna a letra ausente na matriz.

Você sempre terá uma matriz válido. E será sempre exatamente uma letra faltando. O comprimento da matriz será sempre, pelo menos, dois.

A matriz será sempre conter letras em apenas um caso.

Exemplo:

['a','b','c','d','f'] -> 'e'
['O','Q','R','S'] -> 'P'

Minha solução que é realmente ruim é esta:

public static char findMissingLetter(char[] array) {
    char[] alphabet = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

    int offset = 0;
    int point = 0;
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < alphabet.length; j++) {
            if (alphabet[j] == array[i]) {
                offset = j;
                point = offset + 1;
                if (alphabet[point] != array[++i]) {
                    System.out.println(alphabet[point]);
                    return alphabet[point];
                }
            }
        }
    }
    return ' ';
}

Agora eu ter encontrado uma solução que é realmente curto, mas eu não entendo o código ou pelo menos eu não entendo como sem dar o código da lista de possíveis cartas é capaz de saber qual carta está faltando:

public static char findMissingLetter(char[] array){
    char expectedLetter = array[0];
    for(char letter : array){
        if(letter != expectedLetter) break;
        expectedLetter++;
    }
    return expectedLetter;
}

Alguém pode explicar como funciona a carvão de combustão e por isso sabe que 'e' está faltando mesmo que eu não tenha fornecido uma variedade de todas as letras?

Vishwas Atrey:

A solução que você tem dado é muito simples. Você deve estar familiarizado que o charvalor é interpretável como um valor inteiro, que é o valor numérico que determinado personagem na tabela ASCII.

Assim, na solução depois de tomar o valor inicial expectedLetter(que é o primeiro valor na matriz de char), ele verifica o valor numérico dos caracteres. Se eles são o mesmo Isso significa que eles são o mesmo personagem, como você é dito que os personagens estão em ordem consecutiva, e em apenas um caso de letra. Então, ele incrementa o valor numérico expectedLetter(que é o próximo caractere na tabela ASCII ou você pode dizer caráter próxima ordem alfabética) e, novamente, verifica o valor até o final do array.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=205974&siteId=1
Recomendado
Clasificación