Bestimmen Sie in möglichst wenigen Bytes, ob die beiden angegebenen Werte mit einem der folgenden Werte übereinstimmen:
Erster Wert
2 string or integer - whichever you prefer
to case insensitive
too case insensitive
two case insensitive
t0 case insensitive (t zero)
Zweiter Wert
b case insensitive
be case insensitive
bee case insensitive
b3 case insensitive
Beispiele
2 'Bee' true
'2' 'b' true
'not to' 'be' false
'that is' 'the question' false
Antworten:
Shakespeare , 4778 Bytes
Hinweis: Diese Antwort ist kein ernstzunehmender Konkurrent
Gibt 0 aus, wenn falsch, 1, wenn wahr.
Dies könnte leicht kürzer sein (und wenn die Leute es wirklich wollen, könnten die Wortlängen gekürzt werden), aber dies wäre ein Schlag ins Gesicht des guten alten Willens. Ich habe immer gedacht, dass Horatio der unbesungene Held von Hamlet ist, also habe ich sichergestellt, dass er derjenige ist, der Hamlet den intensiven Monolog liefert, in dem Hamlet letztendlich beweisen muss, dass er so gut ist wie Horatio (der die Newline repräsentiert).
Der Code selbst ist ziemlich einfach. Alle Zeichen ohne Hamlet sind ASCII-Werte (in der Reihenfolge:),
newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v
und der Code ist dann eine einfache Zustandsmaschine (insbesondere ein DFA ), die inScene XI
einen Akzeptanzzustand undScene XII
einen Zurückweisungszustand übergeht..
Nachdem ich das gemacht hatte, steckte ich es einfach in Shakespeare ein und nutzte die Tatsache, dass ich in den nächsten Zustand fallen konnte, wenn sie numerisch benachbart waren. Ich habe es nur mit der Version von Shakespeare getestet, die ich im Titel verlinkt habe, aber ich glaube, wir definieren eine Sprache durch eine Implementierungs-Iirc.
quelle
Retina , 28
Wahrscheinlich meine schnellste Code-Golf-Antwort - 9 Minuten nach OP.
Eingabeparameter sind durch Kommas getrennt. Die Ausgabe ist 1 für wahr und 0 für falsch.
Probieren Sie es online aus.
quelle
Pyth, 34 Bytes
Probieren Sie es online aus: Demonstration
Erläuterung:
quelle
Pyth, 41 Bytes
Probieren Sie es hier aus!
Einfache Suche nach Listen. Gibt eine leere Liste als falschen Wert und eine nicht leere Liste als wahren Wert aus.
Sieht so aus oder so, ich mag diesen nicht wirklich.
quelle
Oracle SQL 11.2, 86 Byte
Gibt eine Zeile für wahrheitsgemäß und keine Zeile für falsch zurück.
quelle
05AB1E ,
3945 BytesCode:
Probieren Sie es online!
Verwendet CP-1252-Codierung. Wahrheit ist, wenn eine Zahl ausgegeben wird, und falsch, wenn nichts ausgegeben wird.
Nicht konkurrierende Version (39 Bytes) , funktioniert mit der neuesten Version:
quelle
ES6,
564845 Bytes5 Bytes gespart dank @ user81655. 3 Bytes durch weitere Optimierung eingespart. Dank @Patrick Roberts konnten weitere 3 Bytes eingespart werden.
t[wo]?o
ist die kürzeste Regex, die ich mir vorstellen kann, um alle drei Homophone zu erreichen.Wenn die beiden Werte als einzelnes Parameterarray übergeben werden dürfen, kann der restliche Parameter ein normaler Parameter werden und weitere 5 Byte einsparen.
quelle
(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
i
Flagge fehlt.Perl 6,
4544 BytesVielen Dank an die Leute im IRC, die mir geholfen haben, Golf zu spielen
Verwendung
Nicht konkurrierende Alternative, 54 Bytes
Dies ist eine schöne Alternative zu den oben genannten, wenn Sie denken, Regexes sind eklig, aber es ist ein bisschen länger. Es könnte ein paar Bytes länger sein, aber da es nicht konkurrierend ist, lasse ich es wie es ist.
quelle
[
und Perl 6 nicht kennen und]
eine nicht erfassende Gruppe in einem regulären Ausdruck bezeichnen, der wie(?:
und)
in Perl 5 geschrieben würde . Um eine Zeichenklasse zu erhalten, müssen Sie sie in spitze Klammern<[
und setzen]>
.Python 2.7, 133 Bytes
Ich bin nicht sicher, ob wir Lösungen veröffentlichen sollen, wenn es eine kleinere Version in den Kommentaren gibt, aber hier ist meine Version in Python.
Edit: Ohne die Funktion sind es nur 73 Bytes (und das sind nicht mal die besten Antworten. Verzeih mir, dass ich neu bin
quelle
2
(integer)e('oo', '3')
und ähnliche Teilzeichenfolgen zurück .Ruby,
535552 BytesIch bin ehrlich, das ist mein erster Versuch, ein Problem zu lösen.
Funktionsaufruf in Form von
f.call(firstValue, secondValue)
0
ist Wahrheit,nil
ist falsch.Testen Sie es hier
quelle
Japt, 36 Bytes
Vielleicht habe ich etwas verpasst, aber das sollte völlig funktionieren. Online testen!
quelle
Pyth, 39 Bytes
-3 Bytes von @FryAmtheEggman
Probieren Sie es hier aus .
quelle
Python,
8583 Bytes@Manatwork hat mir zwei Bytes gespart.
Das ist ziemlich brachial. Ich werde als nächstes auf Regex-Lösungen eingehen.
quelle
'2 to too two t0'.split()
Für das zweite Array macht das keinen Unterschied.'2,to,too,two,t0'.split(',')
. Wie dumm von mir.PowerShell v3 +,
74 bis70 ByteRegex wird nicht verwendet. Nimmt zwei Eingaben an, überprüft, ob das erste
-in
Array vom-split
Operator dynamisch erstellt wurde , konvertiert diesen Booleschen Wert in einen int-Wert mit+
und multipliziert diesen*
mit der Überprüfung, ob-in
das zweite Array das zweite Array ist (wodurch der Boolesche Wert automatisch als int umgewandelt wird ). Das funktioniert dennx*y == x&y
wennx
undy
kann nur1
oder sein0
.Bei PowerShell wird standardmäßig die Groß- und Kleinschreibung nicht berücksichtigt, daher erhalten Sie diese kostenlos. Wird ausgegeben
0
bzw.1
für Falsch / Wahrhaftigkeit. Benötigt v3 oder neuer für den-in
Betreiber.Bearbeiten - 4 Bytes mit unary -split gespeichert
quelle
Groovy, 52 Bytes
==~
ist ein cooler Regex-Operator in Groovy, der auf Gleichheit prüft.Tests:
Regex101- Test.
quelle
x
istt
undy
ist0b
?f('t', '0b')
, falsch zu sein, aber ich bin besorgt, dass Ihr Code true zurückgeben würde.MATL , 32
4143BytesGleicher Ansatz wie die Retina-Antwort von @ DigitalTrauma . Eingaben werden durch ein Komma getrennt. Die Ausgabe von Truthy ist eine Zeichenfolge, bei der die beiden Eingaben in Kleinbuchstaben geschrieben sind. Falsch ist keine Ausgabe.
Probieren Sie es online!
quelle
C # 6, 132 Bytes
Ungolfed-Version (nur geringfügig besser lesbar):
quelle
Python 2, 67 Bytes
Verwendet den regulären Ausdruck von Digital Trauma. Die Eingabe ist eine einzelne Zeichenfolge, die durch ein Komma getrennt ist. Ich bin mir nicht sicher, ob dieses Format für die Eingabe zulässig ist ...
quelle