Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, vamos movimentar uma grade com resultados. Vejamos mais informações com a explicação e sua resolução.
The Grid Search -
Dada uma matriz de cadeias de dígitos, tente encontrar a ocorrência de um determinado padrão de dígitos. Nas matrizes de grade e padrão, cada string representa uma linha na grade. Por exemplo, considere a seguinte grade:
1234567890
09 876543 21
11 111111 11
11 111111 11
2222222222
A matriz padrão é:
876543
111111
111111
O padrão começa na segunda linha e na terceira coluna da grade e continua nas duas linhas seguintes. Diz-se que o padrão está presente na grade. O valor de retorno deve ser YES ou NO, dependendo se o padrão for encontrado. Nesse caso, retorne YES.
Descrição da função
Complete a função gridSearch no editor abaixo. Ele deve retornar YES se o padrão existir na grade ou NO não.
gridSearch tem o(s) seguinte(s) parâmetro(s):
- string G[R]: a grade para pesquisar
- string P[r]: o padrão a ser procurado
Vejamos o código em execução:
function gridSearch(G, P) {
// Write your code here
for(let i=0; i<=G.length-P.length; i++){
for(let j=0; j<=G[0].length-P[0].length; j++){
var k = 0;
while ( G[i+k].slice(j,j+P[0].length) == P[k] ){
k++;
if(k == P.length) return 'YES';
}
}
}
return 'NO';
}
O código usa dois loops for aninhados para percorrer todas as posições possíveis na matriz G onde o padrão P pode ser encontrado. O primeiro loop for itera pelas linhas de G, enquanto o segundo loop for itera pelas colunas de G.
Dentro dos loops for, uma variável k é definida como zero para acompanhar o progresso na comparação entre G e P.
Em seguida, um loop while é usado para comparar as partes relevantes de G e P. A condição do loop while verifica se a fatia da matriz G é igual à linha correspondente de P.
Se o loop while chegar ao final do padrão P, ou seja, se k for igual ao comprimento de P, isso significa que o padrão P foi encontrado em G. Nesse caso, a função retorna a string 'YES'.
Se o código não encontrar o padrão P em nenhuma posição possível na matriz G, a função retorna a string 'NO' após percorrer todos os elementos.
O resultado será:
2
10 10
7283455864
6731158619
8988242643
3830589324
2229505813
5633845374
6473530293
7053106601
0834282956
4607924137
3 4
9505
3845
3530
15 15
400453592126560
114213133098692
474386082879648{-truncated-}
Expected Output
- YES
- NO
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)