Wie einige Leute in letzter Zeit vielleicht bemerkt haben, habe ich die Entwicklung von Braingolf weitgehend aufgegeben, weil es langweilig und uninspiriert ist, und bin zu 2Col übergegangen, das etwas interessanter ist und nicht als Golfsprache konzipiert wurde.
Das entscheidende Merkmal von 2Col ist, dass jede Codezeile mit Ausnahme der neuen Zeile genau 2 Zeichen lang sein muss. Dies bedeutet , dass die Länge eines 2col Programms kann immer berechnet werden , 3n-1
wo n
die Anzahl der Zeilen im Programm.
Hier ist meine Herausforderung: Wenn Sie 2Col-Code als Zeichenfolge angeben, geben Sie wahrheitsgemäß aus, wenn es sich um einen gültigen 2Col-Code handelt (jede Zeile besteht aus genau 2 Zeichen und entspricht der 3n-1
Formel), andernfalls falsey.
Eingang
Die Eingabe sollte als einzelne Zeichenfolge oder als Array von Zeichen erfolgen.
Ausgabe
Ein wahrer Wert, wenn die Eingabezeichenfolge ein gültiges Layout ist, und ansonsten ein falscher Wert.
Ihr Code sollte konsistent sein, in welchen Wahrheits- / False-Werten er verwendet wird
Testfälle
======
F!
$^
----
truthy
======
======
*8
+1
Sq
----
truthy
======
======
nop
xt
----
falsey
======
======
+1
+1
#^
----
falsey
======
======
<empty string>
----
falsey
======
======
ye
----
truthy
======
======
no<space>
----
falsey
======
======
test
----
falsey
======
======
puzzle
----
falsey
======
Wertung
Dies ist Code-Golf, so dass die wenigsten Bytes gewinnen!
quelle
true
Falsey undfalse
Truthypuzzle
. Dies macht Lösungen ungültig, die die gesamte Länge des Strings Modulo 3 ausführen und dann negiert werden (was für alle aktuellen Testfälle funktioniert).Antworten:
Brachylog (2), 4 Bytes
Probieren Sie es online aus!
Vollständiges Programm (da dies ein Entscheidungsproblem ist ; vollständige Programme von Brachylog werden ausgegeben,
false.
wenn ein Assertionsfehler aufgetreten ist ,true.
ohne eines).Erläuterung
Indizes auf
l
sind eine der neuesten Funktionen von Brachylog (obwohl immer noch älter als die Herausforderung), und dies ist eine gute Herausforderung, um sie zu verwenden.quelle
ṇlᵛ2
undṇlᵛ²
würde auch funktionieren.JavaScript (ES6),
24282524 ByteProgramm behoben und dank @ PunPun1000 von drei Bytes rasiert
Dank @Shaggy ein Byte rasiert
Gibt true zurück, wenn gültig, und false, wenn nicht.
quelle
s=>s.match(/^(..\n)*..$/)
jedoch korrekt mit beiden übereinstimmen und gleichzeitig mit 25 Bytes kürzer seintest
anstelle von verwendenmatch
.Cubix , 20 Bytes
Gibt 1 für wahr und nichts für Falsey zurück
Kubifiziert
ABq
Schlürfen Sie alle Eingaben ein, kehren Sie sie um und drücken Sie den EOI (-1) auf den Boden des Stapels>;;
Treten Sie in die Schleife ein und entfernen Sie Gegenstände vom Stapel?
Test auf EOI (-1).1uO@
, 1 auf den Stapel schieben, auf Integer-Ausgabe umkehren und anhalten_
reflektiert auf die Rücken Für?
welche Umleitungen auf diew
Spur VerschiebungN-!$@;U
Schieben Sie den Zeilenvorschub (10) auf den Stapel, subtrahieren Sie das Testergebnis, überspringen Sie den Stopp, falls falsch, entfernen Sie das Ergebnis und drehen Sie es um;;>
Entfernen Sie die Zeilenvorschübe vom Stapel und leiten Sie sie in die Schleife um.Probieren Sie es online aus!
quelle
Python, 51
Testfallläufer:
quelle
Haskell,
235232 BytesIch habe mich von einigen anderen Lösungen inspirieren lassen
"\n"
.quelle
Gelee , 6 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
Netzhaut , 10 Bytes
Probieren Sie es online aus! Ausgänge
1
oder0
nach Bedarf.quelle
JavaScript (ES6),
3524 ByteVersuch es
quelle
There's gotta be a shorter way to do this with RegEx!
Yup (und meins ist wahrscheinlich nicht optimal)05AB1E , 6 Bytes
Probieren Sie es online aus!
quelle
J-uby ,
1918 Bytes:=~&
erstellt eine anonyme Funktion, die akzeptiertx
und zurückgegeben wird,0
wenn sie mit dem regulären Ausdruck übereinstimmt/^(..\n*)..$/m
oder aufnil
andere Weise.quelle
Java (OpenJDK 8) , 25 Bytes
Probieren Sie es online aus!
Überprüft, ob die Eingabezeichenfolge eine beliebige Anzahl von Zeilen enthält, gefolgt von einem Zeilenvorschub und einer letzten Zeile ohne eine (stellt mindestens eine Zeile sicher).
quelle
Bash + GNU-Dienstprogramme, 13
Dies setzt den Shell-Rückgabewert (zugänglich in
$?
) für false auf 0 und für true auf 1. Dies ist im Gegensatz zur normalen Shell-Konvention der entgegengesetzte Sinn. Um dies richtig zu machen, müssten Sie Folgendes tun:Bash + GNU-Dienstprogramme, 15
quelle
Ruby, 22 Bytes
quelle
Japt ,
76 BytesProbieren Sie es online aus
Erläuterung
quelle