Für Ihre schwierige Aufgabe müssen Sie eine Aufgabe für einen Computer erstellen, die herausfindet, ob einige Wörter auf einfache Weise erklärt werden. Etwas wird auf einfache Weise erklärt, wenn es nur die zehnhundert am häufigsten verwendeten Wörter verwendet. Wenn nicht, wird es auf harte Weise erklärt. Dies kann eine vollständige Computersache oder ein Teil einer Computersache sein. (Volles Programm oder Funktion)
Es gibt etwas, das ein Computer lesen kann und das alle zehnhundert Wörter mit einem Leerzeichen zwischen jedem Wort enthält. Der Name des Dings, den der Computer lesen soll, heißt 'most used.txt'. Sie können dieses Ding von diesem Computerplatz nehmen .
Die Person, die den Computer benutzt, gibt einige Wörter ein. (Dies kann aus STDIN, Funktionsargumenten oder Befehlszeilenargumenten stammen.) Der Computer muss so etwas wie ein wahres sagen, wenn die Wörter einfach sind, und so etwas wie ein nicht wahres, wenn es schwer ist. ( Richtig-Falsch ) Die Person, die das Kürzeste für den Computer macht, ist das Beste. Die Dinge, von denen jeder weiß, dass sie schlecht sind, sind schlecht. ( Standardlücken gelten )
Weitere Informationen zur Funktionsweise des Computers:
Es ist egal, ob die Wörter GROSS oder klein sind.
Die Bilder, die das Erkennen der Bedeutung des Wortes erleichtern (Interpunktion), spielen keine Rolle. Wenn also die Person, die den Computer benutzt, "nicht" sagt, ist es kein anderes Wort als das Wort "nicht". Zahlen und andere Bilder spielen ebenfalls keine Rolle. Wenn die Person also "HE $$ ll9o" sagt, sollte der Computer dies wie "Hallo" lesen.
Die kleinen Linien zwischen Wörtern (Bindestrichen) funktionieren genauso wie Leerzeichen. Das Wort "up-goer-five" ist also dasselbe wie das Wort "up-goer five".
Weitere Informationen zum Erstellen von Wörtern wie diesem:
Antworten:
CJam, 41 Bytes
Dies macht die ziemlich unsaubere Annahme, die
most used.txt
sich im Stammverzeichnis befindet, da CJam keine relativen Pfade verarbeiten kann.Alternativ haben wir die folgenden webbasierten Lösungen (78 und 29 Bytes):
Die "richtige" Art, dies in CJam zu tun, wäre, beide Eingaben von STDIN zu lesen (Eingabe in der ersten Zeile, Wörterbuch in der zweiten), was in 18 Bytes möglich ist:
Sie können die letzte Version im CJam-Interpreter testen . (Permalink in Chrome getestet)
Beispiele
quelle
R, 106 Bytes
Ist mir nicht sicher, ob ich die Herausforderung verstehe, weil ich Schwierigkeiten beim Lesen habe.
Dadurch wird ein unbenannter Teil eines Computers erstellt, der eine Zeichenfolge akzeptiert und so etwas wie ein wahres oder ein nicht wahres zurückgibt.
Ungolfed + Erklärung:
Vielen Dank an Dennis für die Inspiration.
quelle
part-of-a-computer-thing(s){...}
sollte Bonuspunkte wert sein.Python 3, 148 Bytes
Ausgänge
True
undFalse
Beispiele
quelle
don't
korrekt behandeln?True
. Ist das korrekt?most used.txt
durch neue Zeilen getrennt haben? Ich bin nicht 100% sicher, wie das funktioniert, aber ich stelle mir vor, Sie versuchen es in jedes einzelne Wort in der Datei aufzuteilen?Pyth, 35 Bytes
Tests, bei denen das Obige die Datei ist
common.pyth
Erläuterung:
quelle
APL (Dyalog) , 69 Bytes
Angenommen, die Datei befindet sich im aktuellen Verzeichnis.
Probieren Sie es online!
Die erste Zeile definiert eine Normalisierung und Aufspaltung in-list-of-Strings Helferfunktion, s :
s←
s ist819⌶
das kleingeschrieben' '(
Ergebnis der folgenden Funktion, mit einem Raum , wie linkes Argument ...1↓¨
fallen je eines aus,
der Verkettung der Argumente⊂⍨
vor jedem Elemente geschnitten , wo⊣
das linke Argument=
gleich,
die Verkettung der Argumente)
angewendet'[- ]' '\W'⎕R' ' ''
die PCRE Ersetzungen dash / Leerzeichen → Leerzeichen, Nicht-Wortzeichen → Nichts∧/(
… Stimmt)
es, dasss
die normalisierte und geteilte⍞
Texteingabe∊
Mitglieder dess
normalisierten und geteilten⊃
ersten Elements⎕NGET'most used.txt'
(Inhalt, Codierung, Zeilenumbruch) der Datei sindquelle
JavaScript (ES7), 161 Byte
(Nicht konkurrierend, da die Frage der ES7-Spezifikation vorausgeht)
Hat jemand eine Kopie der Datei online, mit der ich ein funktionierendes Snippet erstellen kann?
quelle
then
7 Bytes sparen könnenalert
.then
s bei der Auflösung nachfolgenden Code ausführen müssen.PHP, 101 Bytes
Nimmt Eingaben von STDIN entgegen und geht davon aus, dass einzeilige Dictionary-
Exits mit
1
(error) für falsch und0
(ok) für wahrheitsgemäß gekennzeichnet sind. Laufen Sie mit-R
.Teilen Sie die Eingabe nach Nicht-Wort-Zeichen, und durchlaufen Sie das resultierende Array (Wörter):
Wenn das Wort im Wörterbuch enthalten ist, fahren Sie fort. sonst
exit(1)
.implizit
exit(0)
.oder einfach gesagt:
ein Wort nach dem anderen: Wenn das Wort in den am häufigsten verwendeten Wörtern vorkommt, fahren Sie fort. sonst return 1. return 0.
und: Ich könnte zwei Punkte sparen, wenn die am häufigsten verwendeten Wörter jeweils ein Leerzeichen vor und am Ende hätten.
quelle
Java, 248 Bytes
Mit der Phrase als Argument übergeben.
Input-Output:
Abstand und Tabbed Out:
quelle
java.io.*
java.util.*