DEV Community

Altencir Junior
Altencir Junior

Posted on

1

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.

Top comments (0)

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay