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?