Continuando a série: Resolvendo problemas no HackerRank , hoje nós trataremos de uma resolução que exige um pouco do cognitivo, você está preparado? Aliás,já existem alguns artigos anteriores que vale a pena dar uma olhada. Vamos iniciar!!!
StairCase -
Neste episódio , nos é pedido para fazer um problema de escada. COMO ASSIM? Com base em espaços e #, nós devemos fazer uma ordem decrescente onde sua base tem um valor específico, e seu início tem a menor razão.
Suponhamos que exista uma escada com valor N, e nesse N se é guardado um valor 4.
Antes de iniciar a resolução desse problema, é prudente fazer uma análise do que precisamos fazer primeiro, antes de começar a escrever para o computador.
Por exemplo:
xxx#
xx##
x###
#### // Os x nesse caso representam a área vazia.
(Conseguimos ver as 4 posições de # e como elas devem ser executadas).
O que fazer então?
Vejamos a resolução que fiz:
function staircase(n) {
// Write your code here, N agora valerá 6
let result = '';
const space = ' ';
const hashtag = '#';
for (let i = 1; i <= n; i++) {
result += `${space.repeat(n - i)}${hashtag.repeat(i)}\n`;
}
console.log(result);
}
Nesse caso, separamos o que seria necessário pra executar esse código, declarando as variáveis result
,space
, e hashtag
. Com base nisso, utilizamos o laço for
e declaramos um index 'i', que começara com o valor 1 e que caso seja inferior ou igual ao valor de N( que sabemos que agora valerá 6), ele adicionará +1 ao index.
Logo após isso, chamamos a let result adicionando(+= e ++ tem diferença, enquanto o += adiciona a alguma coisa que virá posteriormente, ++ acrescenta +1), variável space.repeat pegando N,que vale 6 - i que é 1. Isso se repetirá e a cada repetição, o index i irá aumentar +1, enquanto ele não for igual a 6. E também utilizamos a var hashtag que irá repetir 1x a cada chamada.
Com isso, nosso resultado se dá como:
#
##
###
####
#####
######
Existem claro, soluções alternas a essa,encontrei uma que se assimila bastante a superior . Veja:
function staircase(n) {
let s = '';
for(let i=1; i<=n;i++){
let blank = ' '.repeat(n-i);
let star = '#'.repeat(i);
s += blank + star + '\n'
}
console.log(s)
}
Assim finalizamos mais um desafio deste HackerRank. Até a próxima!!!
Top comments (0)