Ayudante de Ken-Ken
Ken-Ken es un juego de rompecabezas similar al Sudoku. Consiste en un tablero lleno de dígitos del 1 al 9, sin dos dígitos idénticos en la misma fila o columna. Luego, el tablero se divide en formas parecidas a piezas de rompecabezas (jaulas), cada una con un número objetivo y un operador matemático, que deben coincidir con los dígitos que la llenan (el orden no importa).
- Para la suma
+, los dígitos deben sumartarget. - Para la multiplicación
*, los dígitos deben multiplicarse para obtenertarget. - Para la resta
-, los dígitos deben tener una diferencia detarget. Solo se permiten jaulas de tamaño 2 para la resta. - Para la división
/, los dígitos deben tener un cociente detarget. Solo se permiten jaulas de tamaño 2 para la división. - Para ningún operador
"", los dígitos pueden llenarla con cualquiera de los operadores. Si una jaula tiene más de 2 celdas, solo puede tener operadores+o*.
Por ejemplo, con un operator de / y un target de 4, con una 2x1 cage, los dígitos posibles para llenarla son 2 y 8.
La forma de la cage se indica mediante 1's. Dados una cage, un target y un operator, tu objetivo es devolver un arreglo con todas las combinaciones posibles de dígitos (como una cadena JSON).
Ejemplo
cage = [
[0, 1],
[1, 1]
]Con target = 24 y operator = '*', el resultado debería ser:
"[[1,3,8],[1,4,6],[2,2,6],[2,3,4]]"Entradas
- cage (
[][]integer)
La forma de la jaula, indicada mediante 1's y 0's. 1 indica una celda de la jaula.
Restricciones garantizadas:
1 ≤ cage.length ≤ 31 ≤ cage[i].length ≤ 62 ≤ cage size (# of 1's) ≤ 8target (
integer)- operator (
string)
El operador será +, -, *, / o "".
Para que coincida con las salidas esperadas de las pruebas, ordena tanto los arreglos internos como los externos y luego devuélvelos como una cadena.