Die Herausforderung
Sie erhalten:
- eine nicht leere, unsortierte Liste h positiver Ganzzahlen (der Heuhaufen)
- eine positive ganze Zahl n (die Nadel)
Ihre Aufgabe ist es, die Liste aller eindeutigen Dezimalverkettungen von Permutationen von h zurückzugeben, deren Binärdarstellung die Binärdarstellung von n enthält .
Beispiele
h = [1, 2, 3]
n = 65Es gibt nur eine passende Verkettung, die erwartete Ausgabe ist also
[321]
.h = [1, 2, 3]
n = 7Dieses Mal gibt es drei Verkettungen, die das binäre Muster 111 enthalten . Die erwartete Ausgabe ist
[123, 231, 312]
.h = [12, 3]
n = 7Es sind nur zwei Permutationen verfügbar und beide stimmen überein. Die erwartete Ausgabe ist
[123, 312]
.h = [1, 2, 2]
n = 15Die einzige übereinstimmende Verkettung ist 122 ( 1111010 im Binärformat, das 1111 enthält ), die erwartete Ausgabe ist also
[122]
. Beachten Sie, dass zwei Permutationen tatsächlich zu 122 führen, aber Sie nicht ausgeben dürfen[122, 122]
.
Erläuterungen und Regeln
- Sie können die Nadel als Ganzzahl (
65
), als Zeichenfolge für einen Dezimalwert ("65"
) oder als Zeichenfolge für einen Binärwert ("1000001"
) verwenden. - Sie können den Heuhaufen als natives Array / Objekt / Satz von Ganzzahlen (
[11,12,13]
), als natives Array / Objekt / Satz von Zeichenfolgen, die Dezimalwerte (["11","12","13"]
) darstellen, oder als durch Trennzeichen getrennte Zeichenfolge von Dezimalwerten ("11 12 13"
oder"11,12,13"
) betrachten. Sie können sich auch für eine Variante mit Arrays von Ziffern (wie[[1,1],[1,2],[1,3]]
) entscheiden. - Die Ausgabe muss einem der oben beschriebenen Formate für den Heuhaufen entsprechen, muss jedoch nicht dasselbe sein.
- Sie dürfen keine Heuschober verarbeiten, deren höchste dezimale Verkettung größer ist als die höchste darstellbare ganze Zahl ohne Vorzeichen in Ihrer Sprache.
- Abgesehen davon sollte Ihr Code theoretisch jede Eingabe unterstützen - vorausgesetzt, er hat genügend Zeit und Speicherplatz.
- Das ist
SPARTA!Code-Golf , so gewinnt die kürzeste Antwort in Bytes!
Testfälle
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"]
und ["1","23"]
sind zwei verschiedene Heuhaufen.
set([(1, 2, 2)])
. Ist es gültig oder soll ich es loswerdenset
?