Ajudante de Ken-Ken
Ken-Ken é um jogo de quebra-cabeça semelhante ao Sudoku. Ele consiste em um tabuleiro preenchido com dígitos de 1 a 9, sem dois dígitos idênticos na mesma linha ou coluna. Depois, o tabuleiro é dividido em formas semelhantes a peças de quebra-cabeça (jaulas), cada uma com um número-alvo e um operador matemático, que devem corresponder aos dígitos que a preenchem (a ordem não importa).
- Para a adição
+, os dígitos devem somartarget. - Para a multiplicação
*, os dígitos devem ser multiplicados para obtertarget. - Para a subtração
-, os dígitos devem ter uma diferença detarget. Apenas jaulas de tamanho 2 são permitidas para a subtração. - Para a divisão
/, os dígitos devem ter um quociente detarget. Apenas jaulas de tamanho 2 são permitidas para a divisão. - Para nenhum operador
"", os dígitos podem preenchê-la usando qualquer um dos operadores. Se uma jaula tiver mais de 2 células, ela só poderá ter operadores+ou*.
Por exemplo, com um operator de / e um target de 4, em uma 2x1 cage, os dígitos possíveis para preenchê-la são 2 e 8.
O formato da cage é indicado por 1's. Dada uma cage, um target e um operator, seu objetivo é retornar um array com todas as combinações possíveis de dígitos (como uma string JSON).
Exemplo
cage = [
[0, 1],
[1, 1]
]Com target = 24 e operator = '*', a saída deveria ser:
"[[1,3,8],[1,4,6],[2,2,6],[2,3,4]]"Entradas
- cage (
[][]integer)
O formato da jaula, indicado por 1's e 0's. 1 indica uma célula da jaula.
Restrições garantidas:
1 ≤ cage.length ≤ 31 ≤ cage[i].length ≤ 62 ≤ cage size (# of 1's) ≤ 8target (
integer)- operator (
string)
O operador será +, -, *, / ou "".
Para corresponder às saídas esperadas dos testes, ordene tanto os arrays internos quanto os externos e depois retorne o resultado como uma string.