Die New York Times hat ein tägliches Online-Spiel namens Letter Boxed (der Link befindet sich hinter einer Paywall; das Spiel wird auch hier beschrieben ), das auf einem Quadrat wie folgt dargestellt wird:
Sie erhalten 4 Gruppen mit 3 Buchstaben (jede Gruppe entspricht einer Seite auf dem Bild). kein Buchstabe erscheint zweimal. Das Ziel des Spiels ist es, Wörter zu finden, die aus diesen 12 Buchstaben (und nur diesen Buchstaben) bestehen, so dass:
- Jedes Wort besteht aus mindestens drei Buchstaben.
- Aufeinanderfolgende Buchstaben dürfen nicht von derselben Seite sein.
- Der letzte Buchstabe eines Wortes wird zum ersten Buchstaben des nächsten Wortes;
- Alle Buchstaben werden mindestens einmal verwendet (Buchstaben können wiederverwendet werden).
In dieser Herausforderung erhalten Sie die Buchstaben und eine Liste von Wörtern. Ziel ist es, zu überprüfen, ob die Liste der Wörter eine gültige Letter Boxed-Lösung ist.
Eingang
Die Eingabe besteht aus (1) 4 Gruppen von 3 Buchstaben und (2) einer Liste von Wörtern. Es kann in jedem geeigneten Format vorliegen.
Ausgabe
Ein wahrer Wert, wenn die Liste der Wörter eine gültige Lösung für die Letter Boxed-Herausforderung für diese 4 × 3-Buchstaben ist, und ein falscher Wert, falls dies nicht der Fall ist.
Testfälle
Buchstabengruppen = {{I,C,O}, {M,R,E}, {G,N,S}, {A,P,L}}
.
Wahrheitswerte
- PILGERFAHRT, ENCLOSE
- CROPS, SAIL, LEAN, NOPE, ENIGMA
Falsche Werte
- PILGERFAHRT, WIRTSCHAFT (kann kein CO haben, da sie auf der gleichen Seite sind)
- CROPS, SAIL, LEAN, NOPE (G und M wurden nicht verwendet)
- PILGERFAHRT, ENCLOSURE (U ist nicht einer der 12 Buchstaben)
- ENCLOSE, PILGRIMAGE (letzter Buchstabe des 1. Wortes ist nicht der erste Buchstabe des 2. Wortes)
- SCAMS, SO, ORGANIZE, ELOPE (alle Wörter müssen mindestens 3 Buchstaben lang sein).
Beachten Sie, dass es uns bei dieser Herausforderung egal ist, ob die Wörter gültig sind (Teil eines Wörterbuchs).
Wertung:
Dieser Code-Golf , niedrigste Punktzahl in Bytes gewinnt!
quelle
no letter appears twice
[]
und0
falsch. Können wir entweder etwas ausgeben oder müssen unsere Ergebnisse konsistent sein?Antworten:
JavaScript (ES6),
130126 Bytes(letters)(words)
Probieren Sie es online!
Schritt 1
Schritt 2
quelle
Gelee ,
3029 BytesProbieren Sie es online!
Ein dyadischer Link, der die Liste der Wörter als linkes Argument und die abgeflachte Liste der Buchstaben im Feld als rechtes Argument verwendet. Es kehrt
1
für wahr und0
falsch zurück.Erläuterung
quelle
05AB1E ,
37353332312928 Bytes-2 Bytes durch Inspiration des
ê
Ansatzes @Emigna, der in seiner 05AB1E-Antwort verwendet wurde .-3 Bytes dank @Grimy .
Nimmt eine Liste mit Zeichen für die Wörter als erste Eingabe und die abgeflachte Liste mit zwölf Buchstaben als zweite Eingabe.
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
quelle
¹€g3@
->DO2@
nach dem ersten Check ( TIO )05AB1E , 42 Bytes
Probieren Sie es online!
quelle
P
nach den Karten entfernt und)˜P
am Ende verwendet werden. 41 Bytes Netter Ansatz mitê
jedoch! 2 Bytes in meiner 05AB1E-Antwort gespeichert.Python 2 , 171 Bytes
Probieren Sie es online!
quelle
Jelly , 34 Bytes
Ein dyadischer Link, der die Wörter auf der linken Seite und die Buchstabengruppen auf der rechten Seite akzeptiert, was ergibt,
1
ob gültig und0
wenn nicht.Probieren Sie es online! Oder sehen Sie sich die Testsuite an .
quelle
Haskell , 231 Bytes
Probieren Sie es online!
Nicht das beste Ergebnis. Einige Haskell-Guru werden das wahrscheinlich unter 100 Bytes schaffen.
Verwendung
Erläuterung
quelle
Haskell , 231 Bytes
Eine andere Haskell-Variante, genau so groß wie @Paul Mutser's :)
Probieren Sie es online!
Ungolfed
quelle
Ruby , 126 Bytes
Probieren Sie es online!
quelle
grep
.puts f[l,['PILGRIMAGE','ENCLOSE','EG']]
returntrue
stattfalse
.Java (JDK) , 188 Byte
Probieren Sie es online!
Erklärungen
Credits
quelle
Kohle , 63 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Verketten Sie die folgenden Ausdrücke und geben Sie sie aus,
0
wenn einer von ihnen a enthält0
anderes enthält1
.Geben Sie für jedes Wort in der Lösung aus, ob seine Länge mindestens 3 beträgt.
Geben Sie für jeden Buchstaben in der Lösung aus, ob er im Puzzle angezeigt wird.
Für jeden Buchstaben im Puzzle wird ausgegeben, ob er in der Lösung erscheint.
Überprüfen Sie für jeden Buchstaben in der Lösung, dass der vorherige Buchstabe nicht zur selben Gruppe gehört, es sei denn, es ist der erste Buchstabe eines Wortes. In diesem Fall überprüfen Sie, ob er dem letzten Buchstaben des vorherigen Wortes entspricht, sofern es nicht der erste ist Buchstabe der Lösung, in diesem Fall einfach ignorieren.
quelle
Python 2 ,
168156 BytesProbieren Sie es online!
Returns
1
für truthy,0
für Falsey.quelle