Wyzwanie
Dostałeś:
- niepusta, nieposortowana lista h dodatnich liczb całkowitych (stóg siana)
- dodatnia liczba całkowita n (igła)
Twoim zadaniem jest zwrócenie listy wszystkich unikatowych konkatenacji dziesiętnych permutacji h, których reprezentacja binarna zawiera reprezentację binarną n .
Przykłady
h = [1, 2, 3]
n = 65Jest tylko jedna pasująca konkatenacja, więc oczekiwany wynik to
[321]
.h = [1, 2, 3]
n = 7Tym razem istnieją trzy konkatenacje, które zawierają wzorzec binarny 111 . Oczekiwany wynik to
[123, 231, 312]
.h = [12, 3]
n = 7Dostępne są tylko dwie kombinacje i obie są zgodne. Oczekiwany wynik to
[123, 312]
.h = [1, 2, 2]
n = 15Jedyną zgodną konkatenacją jest 122 ( 1111010 w formacie binarnym, która zawiera 1111 ), więc oczekiwany wynik to
[122]
. Należy zauważyć, że dwie permutacje faktycznie prowadzić do 122 , ale są nie pozwolił na wyjście[122, 122]
.
Wyjaśnienia i zasady
- Możesz wziąć igłę jako liczbę całkowitą (
65
), ciąg reprezentujący wartość dziesiętną ("65"
) lub ciąg reprezentujący wartość binarną ("1000001"
). - Możesz wziąć stóg siana jako natywną tablicę / obiekt / zestaw liczb całkowitych (
[11,12,13]
), natywną tablicę / obiekt / zestaw ciągów reprezentujących wartości dziesiętne (["11","12","13"]
) lub rozdzielany ciąg wartości dziesiętnych ("11 12 13"
lub"11,12,13"
). Możesz również wybrać wariant, korzystając z tablic cyfr (np[[1,1],[1,2],[1,3]]
.). - Dane wyjściowe muszą być zgodne z jednym z formatów opisanych powyżej dla stogu siana, ale niekoniecznie tym samym.
- Nie powinieneś obsługiwać stogów siana, których najwyższa konkatenacja dziesiętna jest większa niż najwyższa reprezentowana liczba całkowita bez znaku w twoim języku.
- Poza tym twój kod powinien teoretycznie obsługiwać wszelkie dane wejściowe - zakładając, że ma wystarczająco dużo czasu i pamięci.
- To jest
SPARTA!code-golf , więc wygrywa najkrótsza odpowiedź w bajtach!
Przypadki testowe
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"]
i ["1","23"]
są dwa różne stogi.
set([(1, 2, 2)])
. Czy jest ważny, czy powinienem się go pozbyćset
?