Diese Frage wurde geschrieben, weil "Thing Explainer" Spaß macht und mir eine Idee gab.
Schreiben Sie "Dinge, die den Computer dazu bringen, Dinge zu tun", die eine Reihe von Buchstaben, Zahlen und ähnlichen Dingen lesen / nehmen "#%|?
und zurückgeben, True / 1
wenn alle Wörter Teil dieser Menge sind .
Wenn nicht alle Wörter Teil dieses Satzes sind, geben Sie die Wörter zurück, die nicht Teil davon waren.
Diese Website kann in jedem Fall als korrekt angesehen werden. Die Regeln sind so geschrieben, dass sie den Spezifikationen auf dieser Site entsprechen.
Beispiele:
Wahrheit :
Der Code sollte einen wahrheitsgemäßen Wert zurückgeben, wenn der gesamte Text über der ersten horizontalen Zeile als Eingabe eingefügt wird.
Die folgenden Zeilen sollten einen wahrheitsgemäßen Wert zurückgeben (Eingabe wird durch getrennt ###
)
This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true
Falsey :
In den folgenden Beispielen werden Eingabe und Ausgabe durch getrennt ***
. Verschiedene Testfälle sind durch getrennt ###
.
This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false
Detailliertere Regeln:
- Sie können dies verwenden , um Ihren Code zu testen.
- Nicht-Buchstaben werden vom Code als Leerzeichen interpretiert, mit Ausnahme von Wörtern wie
'wasn't'
. Die Wörter mit Apostrophen, die zurückgegebentrue
werden , sind in der Liste enthalten- Zum Beispiel:
foo123bar
sollte zurückgebenfoo
undbar
, da sie nicht Teil der Liste sind und123
als Leerzeichen interpretiert werden können
- Zum Beispiel:
- Die Eingabe enthält nur druckbare ASCII-Codepunkte [10, 32-126].
- Wörter können gemischte Groß- und Kleinschreibung enthalten. Siehe zweiter Testfall.
- Die Liste der Wörter
- Die Ausgabe kann in einem beliebigen Format erfolgen
- Die Ausgabe kann in Groß-, Klein- oder Großbuchstaben erfolgen (optional).
- Die Ausgabe darf keine Symbole enthalten
Für die Aufzeichnung fand Jonathan Allan einen seltsamen Eckfall: Die Implementierung auf XKCD ignoriert tatsächlich alle Buchstaben nach einem Apostroph bis zum nächsten Nicht-[AZ] [az] ['] - find's found
und find'qazxswedc found'
beide geben nichts zurück, während find'qazx.swedc found
zurückgegeben wird swedc
.
Sie können wählen, ob Sie nichts zurückgeben find'qazxswedc found'
oder zurückgeben möchten qazxswedc
. Die Rückgabe qazx, swedc
für find'qazx.swedc
ist ebenfalls in Ordnung.
quelle
Boolean
oder ausdrücken kannArray<String>
, die Rückgabe eines leeren Arrays / einer leeren Liste zulässig?1
. Eine leere Ausgabe ist nicht zulässig.find'qazxswedc
Eingabe. Sollen wir uns nicht von Apostrophen trennen? Zum Beispiel gibtisn't
zurücktrue
(es ist in der Liste),isn
kehrt aber zurückisn
, da dies nicht auf der Liste steht. Aus dieser Logik ging ich mit "Nicht auf Apostrophe spalten" und kehrte sofind'qazxswedc found
zurückfind'qazxswedc
.Antworten:
PowerShell v3 +,
10592 ByteNimmt einfache Wörter wie
$a
und Wörter wie$b
. Hilft$x
. Nehmen Sie jedes Wort auf$b
und entfernen Sie alle schlechten Buchstaben, und überprüfen Sie dann jedes einzelne|{...}
. Wenn dieses Wort nicht enthalten ist$a
, fügen wir es hinzu$x
. Am Ende wählen wir$x
oder1
nicht$x
. Das wird entwederwords
oder gesendet1
.Einige Worte zum Ausprobieren
quelle
Python, 93 Bytes
Alle Testfälle sind ideone
Die Vorverarbeitung der Liste besteht darin, sie aufzuteilen
|
und in eine zu setzenset
(was meiner Meinung nach in Ordnung ist, wenn eine Vorsortierung zulässig ist). Geben Sie Wörter alsw
und die Menge als eins
.Wenn das nicht erlaubt ist, werden dies mit dem
not in s
Werden 98 Bytesnot in set(s)
.Wir könnten es vorverarbeiten, um alle Permutationen von Groß- und Kleinbuchstaben zu haben und 8 Bytes zu sparen, aber ich denke, das könnte zu weit gehen (das wäre eine riesige Menge).
quelle