Dans le jeu de sudoku, de nombreux joueurs aiment "saisir" les nombres possibles qui peuvent aller dans chaque carré:
La ligne ci-dessus peut être représentée sous forme de tableau:
[[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [1,2,4], [8]]
Maintenant, notez qu'il n'y a qu'un seul endroit où 4aller. Cela nous permet effectivement de simplifier la liste ci-dessus pour:
[[1,2,9], [6], [5], [7], [1,2,9], [1,2,9], [3], [4], [8]]
Le but de ce défi est de prendre une liste de nombres possibles dans une permutation, et de déduire quelles possibilités peuvent être éliminées .
Comme autre exemple, disons que vous avez le tableau de possibilités suivant:
[[0,1,3], [0,2,3], [1,2], [1,2]]
Les deux dernières places doivent être remplies par 1 et 2. Par conséquent, nous pouvons supprimer ces possibilités des deux premiers éléments du tableau:
[[0,3], [0,3], [1,2], [1,2]]
Comme autre exemple:
[[0,1,2,3], [0,2], [0,2], [0,2]]
Il est impossible de construire une permutation à partir des possibilités ci-dessus, car il n'y a qu'un seul emplacement pour les deux 1et 3, et vous voudriez retourner un tableau vide.
Vous devez entrer une liste de possibilités et sortir les possibilités restantes une fois que le nombre maximum de possibilités a été éliminé.
- Si un tableau particulier est impossible, vous devez soit renvoyer un tableau vide, soit un tableau dans lequel l'un des sous-tableaux est vide.
- Vous pouvez supposer que le tableau sera bien formé et comportera au moins 1 élément.
- Étant donné un tableau de taille
N, vous pouvez supposer que les nombres dans le sous- tableau seront toujours dans la plage[0:N), et queN <= 10 - Vous ne pouvez pas supposer que chaque numéro de
0àN-1sera présent - Vous pouvez supposer que les nombres dans un seul sous-tableau sont uniques.
- Si un sous-tableau ne contient qu'une seule possibilité, vous pouvez représenter la possibilité dans un tableau ou par lui-même.
[[1],[2],[0]],[1,2,0],[[1,2],0,[1,2]]Sont tous valides. - Vous pouvez accepter le tableau dans un format de chaîne raisonnable ou au format liste / tableau.
- Les sous-réseaux peuvent être dans n'importe quel ordre.
- Au lieu de traiter des tableaux en lambeaux, vous pouvez remplir les emplacements vides avec
-1.
Cas de test
[[0]] -> [[0]]
[[1],[0]] -> [[1],[0]]
[[1],[1]] -> []
[[1],[0,1]] -> [[1],[0]]
[[0,1,2],[1,2],[1,2]] -> [[0],[1,2],[1,2]]
[[0,1],[1,2],[0,2]] -> [[0,1],[1,2],[0,2]]
[[2,1],[1,2],[1,2]] -> []
[[0,3],[2,1],[3,0],[3,2]] -> [[0,3],[1],[0,3],[2]]
[[0,1],[0,1],[2,3],[2,3,0]] -> [[0,1],[0,1],[2,3],[2,3]]
[[0,1],[0,3],[3,2],[0]] -> [[1],[3],[2],[0]]
[[3,5,2],[0,2,4],[4,0],[0,1,3,5],[2,1],[2,4]] -> [[3,5],[0,2,4],[4,0],[3,5],[1],[2,4]]
[[6,9,8,4],[4,5],[5,3,6],[3,8,6,1,4],[3,1,9,6],[3,7,0,2,4,5],[9,5,6,8],[6,5,8,1,3,7],[8],[8,0,6,2,5,6,3]] -> [[6,9,4],[4,5],[5,3,6],[3,6,1,4],[3,1,9,6],[0,2],[9,5,6],[7],[8],[0,2]]
[[3,5,0],[5,7],[5,1,2],[1,3,0],[5,3],[5,0],[5,3,7,8,0,6],[7,5,0,1,8],[1,0,8],[0,6]] -> []
[[9,0,2,3,7],[0,7,6,5],[6,9,4,7],[9,1,2,3,0,5],[2,8,5,7,4,6],[6,5,7,1],[5,9,4],[5,9,3,8,1],[5,0,6,4],[0,7,2,1,3,4,8]] -> [[9,0,2,3,7],[0,7,6,5],[6,9,4,7],[9,1,2,3,0,5],[2,8,5,7,4,6],[6,5,7,1],[5,9,4],[5,9,3,8,1],[5,0,6,4],[0,7,2,1,3,4,8]]
[[2,6,0],[0,4,3],[0,6,2],[0,7],[0,9,2,3,6,1,4],[1,7,2],[2,7,8],[8,6,7],[6,5,2,8,0],[5,8,1,4]] -> [[2,6,0],[3],[0,6,2],[0,7],[9],[1],[2,7,8],[8,6,7],[5],[4]]
[[8],[8,0,6,5,7,2,4,1],[8,6,9,3,5,0,7],[3,9,1,0],[9],[9,2,6],[2,8,3],[3,1,6,8,2],[6],[6,4,5,3,0,7]] -> [[8],[5,7,4],[5,7],[0],[9],[2],[3],[1],[6],[4,5,7]]
[[8,1,0],[5,8,7,6,2,0],[6,8,2],[2,4,0,9],[4,1,7,3,6,8],[8,1],[8,0,3],[0,8,2],[0,8,3],[1,8,0]] -> []
Il s'agit d'un code-golf, alors répondez le plus brièvement possible!
