Ein Standard-Domino-Set besteht aus 28 Einzelstücken:
Geben Sie bei einer Liste von 28 oder weniger eindeutigen Dominosteinen die Liste aus, die für die Erstellung eines vollständigen Satzes erforderlich ist.
Eingangs- und Ausgangsdomino werden durch zwei Ziffern angegeben - die Anzahl der Zacken auf jeder Seite des Domino, zB 00
, 34
, 40
, 66
.
Die Ziffern können in beliebiger Reihenfolge angegeben werden, es handelt sich also 34
um das gleiche Domino wie43
Beispieleingaben
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>
Entsprechende Beispielausgaben
<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]
?Antworten:
CJam, 11 Bytes
Ein unbenannter Block (Funktion) mit E / A als Liste von Ganzzahlpaaren.
Teste es hier.
Erläuterung
quelle
{}
Klammern?Pyth,
1210 BytesEin- und Ausgabe im Format
[[0, 0], [0, 1], ...]
.Probieren Sie es hier aus.
Vielen Dank an @ MartinBüttner für das Speichern von 2 Bytes mit einem anderen Eingabe- / Ausgabeformat!
quelle
JavaScript (ES7 vorgeschlagen),
80 bis76 ByteNimmt Eingaben als durch Leerzeichen getrennte Zeichenfolge und gibt ein Array von Zeichenfolgen zurück. Das Array-Verständnis spielt für dieses wirklich eine große Rolle.
quelle
Ruby 74 Bytes
Nimmt ein Array von Zeichenfolgen und gibt ein Array von Zeichenfolgen zurück.
Kommentiert im Testprogramm
Ausgabe
Beachten Sie im letzten Beispiel (leere Liste eingeben) die Reihenfolge der Generierung der vollständigen Dominoliste mit modularer Arithmetik. Es werden zuerst 7 Doppel generiert, dann 7 Dominosteine mit einem Unterschied von 1 (oder 6) Pips zwischen jeder Seite, dann 7 Dominosteine mit einem Unterschied von 2 (oder 5) Pips und schließlich 7 Dominosteine mit einem Unterschied von 3 (oder 4). pips.
quelle
Julia 0,6 , 47 Bytes
Probieren Sie es online!
(Der Start der Reichweite wurde dank JayCe korrigiert.)
48 Bytes
Probieren Sie es online!
quelle
Perl, 48 + 1 = 49 Bytes
Benötigt die
-n
Flagge und die freie-M5.010
|-E
:Ziemlich langweilige Antwort insgesamt, aber hier geht es mit einer ungolfed Version:
quelle
Python 2 , 91 Bytes
Probieren Sie es online!
quelle
JavaScript (SpiderMonkey) , 69 Byte
Probieren Sie es online!
optimiert von Neil's
quelle
R , 111 Bytes
Probieren Sie es online!
Nicht wirklich stolz darauf, aber R ist nicht sehr "golfen" beim Teilen / Verketten von Saiten ...
quelle
05AB1E ,
1211 Bytes-1 Byte dank @Emigna .
Probieren Sie es online aus.
Erläuterung:
quelle
Mathematica, 49 Bytes
Die Eingabe ist eine Liste mit ganzen Zahlen.
quelle
Java 8, 105 Bytes
Ein leeres Lambda, das einen veränderlichen annimmt
java.util.Set<String>
.Probieren Sie es online
Ungolfed
Danksagung
quelle
int i=0,a,b;while(i<49
kann seinfor(int i=0,a,b;i<49;
.Gelee , 8 Bytes
Probieren Sie es online!
Argument ist eine Liste von Länge-2-Listen von ganzen Zahlen. Die Fußzeile transformiert die Eingabe aus dem Format in den Testfällen in das von dieser Lösung akzeptierte Format.
quelle
J,
26, 24 Bytes-2 Bytes dank FrownyFrog
(;(,.i.,])&.>i.7)
berechnet den vollen Satz (dieser Teil könnte, glaube ich, weiter golfen werden. Und bitte tun Sie, wenn Sie sehen, wie ...)-.
ist "set minus"/:~"1
bestellt jeden der EingängeProbieren Sie es online!
Original
Probieren Sie es online!
quelle
(;(,.i.,])&.>i.7)
speichert 2 (kehrt die Reihenfolge um)Python 2,
8986 BytesEin paar Bytes gespart, indem die Generierung von Domino-Sets vereinfacht wurde.
Probieren Sie es online!
Verwendet eine Liste von Zeichenfolgen wie ["00", "10", "02] als Argument für die Dominosteine. Gibt Python-Set-Objekte zurück, bei denen es sich um ungeordnete unterschiedliche Listen handelt.
Erläuterung
quelle
Haskell, 65 Bytes
Anwendungsbeispiel:
Iterieren Sie
a
in einer äußeren Schleife über alle Ziffern von0
bis6
undb
in einer inneren Schleife über alle Ziffern vona
bis6
und behalten Sie diejenigenab
bei, die weder in der Eingabezeichenfolgeab
nochba
in der Eingabezeichenfolge enthalten sind.quelle
Im Ernst, 16 Bytes
Übernimmt die Eingabe als Liste von Zeichenfolgen und gibt eine Liste von Zeichenfolgen aus
Probieren Sie es online!
Erläuterung:
Eigentlich 13 Bytes (nicht konkurrierend)
Dies ist identisch mit der Antwort "Ernsthaft" (mit Ausnahme der impliziten Eingabe und
♂S
einer kürzeren Methode zum Kurzschließen der einzelnen Eingabezeichenfolgen).Probieren Sie es online!
quelle
Schläger
quelle