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 a
que 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))
}
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
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)