Le défi
Vous êtes donné:
- une liste non vide et non triée h d'entiers positifs (la botte de foin)
- un entier positif n (l'aiguille)
Votre tâche consiste à renvoyer la liste de toutes les concaténations décimales uniques des permutations de h dont la représentation binaire contient la représentation binaire de n .
Exemples
h = [1, 2, 3]
n = 65Il n'y a qu'une concaténation correspondante, donc le résultat attendu est
[321]
.h = [1, 2, 3]
n = 7Cette fois-ci, trois concaténations contiennent le motif binaire 111 . La sortie attendue est
[123, 231, 312]
.h = [12, 3]
n = 7Seules deux permutations sont disponibles et les deux correspondent. La sortie attendue est
[123, 312]
.h = [1, 2, 2]
n = 15La seule concaténation correspondante est 122 ( 1111010 en binaire, qui contient 1111 ), donc le résultat attendu est
[122]
. Notez que deux permutations conduisent à 122 mais que vous n'êtes pas autorisé à sortir[122, 122]
.
Clarifications et règles
- Vous pouvez prendre l’aiguille comme un entier (
65
), une chaîne représentant une valeur décimale ("65"
) ou une chaîne représentant une valeur binaire ("1000001"
). - Vous pouvez prendre la pile de foin comme un tableau / objet / ensemble d'entiers
[11,12,13]
natif ( ), un tableau / objet / un ensemble de chaînes représentant des valeurs décimales (["11","12","13"]
) ou une chaîne délimitée de valeurs décimales ("11 12 13"
ou"11,12,13"
). Vous pouvez également opter pour une variante utilisant des tableaux de chiffres (comme[[1,1],[1,2],[1,3]]
). - La sortie doit suivre l’un des formats décrits ci-dessus pour la meule de foin, mais pas nécessairement le même.
- Vous n'êtes pas censé gérer des meules de foin dont la concaténation décimale la plus élevée est supérieure au nombre entier non signé représentable le plus élevé dans votre langue.
- En dehors de cela, votre code devrait théoriquement prendre en charge toute entrée, en supposant qu'il dispose de suffisamment de temps et de mémoire.
- C'est
SPARTA!code-golf , donc la réponse la plus courte en octets est gagnante!
Cas de test
Haystack | Needle | Output
---------------------+----------+-----------------------------------
[ 1, 2, 3 ] | 65 | [ 321 ]
[ 1, 2, 3 ] | 7 | [ 123, 231, 312 ]
[ 12, 3 ] | 7 | [ 123, 312 ]
[ 1, 2, 2 ] | 15 | [ 122 ]
[ 1, 2 ] | 7 | []
[ 12, 34, 56 ] | 21 | [ 125634, 341256, 345612, 563412 ]
[ 1, 2, 3, 4, 5 ] | 511 | [ 53241 ]
[ 1, 3, 5, 7, 9 ] | 593 | [ 37519, 51793, 75913, 75931 ]
[ 11, 12, 13, 14 ] | 12141311 | [ 12141311 ]
[ 1, 2, 1, 2, 1, 2 ] | 1015 | [ 221112 ]
["12","3"]
il ["1","23"]
y a deux meules de foin distinctes.
set([(1, 2, 2)])
. Est-ce valide ou devrais-je m'en débarrasserset
?