Standardowy zestaw domino posiada 28 niepowtarzalnych kawałków:
Biorąc pod uwagę listę 28 lub mniej unikalnych domino, wypisz listę wymaganą do utworzenia pełnego zestawu.
Domino wejściowe i wyjściowe są określone przez dwie cyfry - liczba oczek na każdej stronie, np domina 00
, 34
, 40
, 66
.
Cyfry mogą być podawane w dowolnej kolejności, 34
podobnie jak domino43
Przykładowe dane wejściowe
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66
00 10 11 20 21 22 30 31 32 33 40 41 42 43 44 50 51 52 53 54 55 60 61 62 63 64 65 66
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 34 35 36 44 45 46 55 56 66
00 02 03 04 05 06 11 13 14 15 16 22 24 25 26 33 35 36 44 46 55 66
<empty list>
Odpowiadające przykładowe wyniki
<empty list>
<empty list>
33
01 12 23 34 45 56
00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66
03 16
=[0, 3], [1, 6]
?Odpowiedzi:
CJam, 11 bajtów
Nienazwany blok (funkcja) z I / O jako listą liczb całkowitych.
Sprawdź to tutaj.
Wyjaśnienie
źródło
{}
nawiasów?Pyth,
1210 bajtówDane wejściowe i wyjściowe w formacie
[[0, 0], [0, 1], ...]
.Wypróbuj tutaj.
Dzięki @ MartinBüttner za zapisanie 2 bajtów w innym formacie wejścia / wyjścia!
źródło
JavaScript (proponowany ES7),
8076 bajtówPobiera dane wejściowe jako ciąg oddzielony spacją i zwraca tablicę ciągów. Zrozumienia tablic naprawdę przyciągają na siebie uwagę.
źródło
Ruby 74 bajty
Bierze tablicę ciągów, zwraca tablicę ciągów.
Skomentowane w programie testowym
Wydajność
W ostatnim przykładzie (wprowadź pustą listę) zwróć uwagę na kolejność generowania pełnej listy domino przy użyciu arytmetyki modułowej. Najpierw generowanych jest 7 podwójnych, następnie 7 domino z różnicą 1 (lub 6) pipsów między każdą stroną, następnie 7 domino z różnicą 2 (lub 5) pipsów, a na koniec 7 domino z różnicą 3 (lub 4) pestki.
źródło
Julia 0.6 , 47 bajtów
Wypróbuj online!
(Skorygowany start zakresu dzięki JayCe.)
48 bajtów
Wypróbuj online!
źródło
Perl, 48 + 1 = 49 bajtów
Wymaga
-n
flagi i darmowego-M5.010
|-E
:Ogólnie dość nudna odpowiedź, ale tutaj jest wersja bez golfa:
źródło
Python 2 , 91 bajtów
Wypróbuj online!
źródło
JavaScript (SpiderMonkey) , 69 bajtów
Wypróbuj online!
zoptymalizowany od Neila
źródło
R , 111 bajtów
Wypróbuj online!
Nie jestem z tego naprawdę dumny, ale R nie jest zbyt „golfowy” w dzieleniu / łączeniu łańcuchów ...
źródło
05AB1E ,
1211 bajtów-1 bajt dzięki @Emigna .
Wypróbuj online.
Wyjaśnienie:
źródło
Mathematica, 49 bajtów
Dane wejściowe to lista liczb całkowitych.
źródło
Java 8, 105 bajtów
Pusta lambda akceptuje mutable
java.util.Set<String>
.Wypróbuj online
Bez golfa
Podziękowanie
źródło
int i=0,a,b;while(i<49
może byćfor(int i=0,a,b;i<49;
.Galaretka , 8 bajtów
Wypróbuj online!
Argument jest listą liczb całkowitych o długości 2. Stopka przekształca dane wejściowe z formatu w przypadkach testowych na format akceptowany przez to rozwiązanie.
źródło
J,
26, 24 bajtów-2 bajty dzięki FrownyFrog
(;(,.i.,])&.>i.7)
oblicza pełny zestaw (uważam, że ta część może być dalej golfa. I proszę, jeśli zobaczycie, jak ...)-.
to „set minus”/:~"1
zamawia każde z wejśćWypróbuj online!
Oryginalny
Wypróbuj online!
źródło
(;(,.i.,])&.>i.7)
zapisuje 2 (odwraca kolejność)Python 2,
8986 bajtówZaoszczędzono kilka bajtów, upraszczając generowanie zestawu domino.
Wypróbuj online!
Bierze listę ciągów takich jak [„00”, „10”, „02] jako argument dla domino Zwraca obiekty zestawu python, które są nieuporządkowanymi odrębnymi listami.
Wyjaśnienie
źródło
Haskell, 65 bajtów
Przykład użycia:
Iteruj
a
w zewnętrznej pętli nad wszystkimi cyframi od0
do6
orazb
w wewnętrznej pętli nad wszystkimi cyframi oda
do6
i przechowuj te, wab
których aniab
nieba
znajdują się w ciągu wejściowym.źródło
Poważnie, 16 bajtów
Pobiera dane wejściowe jako listę ciągów, wyświetla listę ciągów
Wypróbuj online!
Wyjaśnienie:
Właściwie 13 bajtów (niekonkurujących)
Jest to identyczne z odpowiedzią Poważnie (z wyjątkiem niejawnych danych wejściowych i
♂S
krótszym sposobem na zwieranie każdego ciągu wejściowego).Wypróbuj online!
źródło
rakieta
źródło