DEV Community

Altencir Junior
Altencir Junior

Posted on

Resolvendo problemas no HackerRank: Contando Strings repetidas

Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje,vamos contar strings a repetidas dentro de um array. Vejamos mais informações com a explicação detalhada e sua resolução.

Repeated String -

Há uma string, s , de letras minúsculas que é repetida infinitas vezes. Dado um inteiro,n , encontre e imprima o número de letras a nas primeiras letras da string infinita. Vejamos um exemplo:

  • s = 'abcac'
  • n = 10

A substring será abcacabcac, contento 10 valores de n e 4 letras a.

Nosso objetivo é passear pela string,e retonar o número de letras aque estarão presentes baseados na repetição:

function repeatedString(s, n) {
    // Write your code here
    let t=0
    let w = n - (s.length *  Math.floor(n/s.length))
    for (let i = 0; i < w; i++) {
        t += s.charAt(i) ==='a' ? 1 : 0;
    }
    if(n < s.length)
        return t

    let x=0

    for (let i = 0; i < s.length; i++) {
            x += s.charAt(i) ==='a' ? 1 : 0;
    }
    return t+(x*Math.floor(n/s.length))
}
Enter fullscreen mode Exit fullscreen mode

O código começa inicializando duas variáveis: "t" é definida como 0 e "w" é definida como a diferença entre "n" e o comprimento de "s" multiplicado pelo maior número inteiro menor ou igual a "n" dividido pelo comprimento de "s". Essa segunda operação é usada para calcular quantas vezes a string "s" será repetida para formar a string final, levando em conta que a última repetição pode ser parcial.

Em seguida, um loop é executado "w" vezes, e a variável "t" é incrementada cada vez que o caractere "a" é encontrado na posição atual da string.

Se o valor de "n" for menor que o comprimento de "s", a função retorna "t".

Caso contrário, uma segunda variável "x" é inicializada com 0, e outro loop é executado para contar o número de ocorrências do caractere "a" na string original "s". O número total de ocorrências de "a" é então calculado como a soma de "t" e do número de repetições completas da string "s" multiplicado pelo número de vezes que o caractere "a" aparece na string original "s". O resultado final é retornado pela função

O resultado será:

aba
10

input: abaabaaba = 7
Enter fullscreen mode Exit fullscreen mode

Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.

Oldest comments (0)