Olá, seja bem vindo a mais um Resolvendo problemas no HackerRank: No caso de hoje, iremos jogar um jogo de tabuleiro de joaninhas . Vejamos mais informações com a explicação e sua resolução.
Happy Ladybugs -
Happy Ladybugs é um jogo de tabuleiro com as seguintes propriedades:
- O tabuleiro é representado por uma string, b, de comprimento n. O ith caractere da string, b[i], denota a ith célula do quadro.
- Se b[i] for um sublinhado (ou seja, _), significa que a i-ésima célula do quadro está vazia.
- Se b[i] for uma letra maiúscula do alfabeto inglês (ascii[AZ]), significa que a ¿ésima célula contém uma joaninha da cor b[i].
- A string b não conterá nenhum outro caractere.
- Uma joaninha fica feliz apenas quando sua célula adjacente esquerda ou direita (ou seja, b[i+1]) é ocupada por outra joaninha da mesma cor.
- Em um único movimento, você pode mover uma joaninha de sua posição atual para qualquer célula vazia.
- Dados os valores de n e b para g jogos de Happy Joaninhas, determine se é possível fazer todas as joaninhas felizes. Para cada jogo, retorne SIM se todas as joaninhas puderem ficar felizes por meio de alguns movimentos. Caso contrário, retorne NÃO.
Exemplo:
b = [YYR_B_BR]
Você pode mover o B e R mais à direita para fazer b = [YYRRBB_] e todas as joaninhas ficarão felizes. Retorno SIM.
Vejamos o código a seguir:
const ladybugs = b.split("");
const ladybugsSet = [...new Set(ladybugs)];
if (!ladybugsSet.includes("_")) {
for (let i = 0; i < ladybugs.length; i++) {
if (ladybugs[i - 1] !== ladybugs[i] && ladybugs[i] !== ladybugs[i + 1]) return "NO";
}
return "YES";
} else {
for (const ladybug of ladybugsSet) {
if (ladybug !== "_") {
if (ladybugs.filter((color) => color === ladybug).length === 1) return "NO";
}
}
return "YES";
}
Esse código verifica se é possível rearranjar as joaninhas representadas pela string b de forma que cada joaninha tenha pelo menos uma joaninha vizinha da mesma cor, ou se é possível colocar "_" em alguns espaços vazios para atender a essa condição. Se for possível, a função retorna "YES"; caso contrário, retorna "NO".
4
7
RBY_YBR
6
X_Y__X
2
__
6
B_RRBR
input:
YES
NO
YES
YES
Assim, concluímos mais um Resolvendo problemas no HackerRank: até a próxima.
Top comments (0)