Schreiben Sie ein Programm oder eine Funktion, die eine Zeichenfolge (oder das Äquivalent Ihrer Sprache) enthält, bestimmen Sie, ob die Zeichenfolge ein Wort ist oder nicht, und geben Sie einen wahrheitsgemäßen oder falschen Wert aus.
(Dies ist kein Duplikat von Ist dies überhaupt ein Wort? Die falschen Wörter werden auf eine ganz andere Weise generiert, die meiner Meinung nach eine völlig andere Herausforderung darstellt.)
Die Wörter werden alle in Kleinbuchstaben zwischen 5 und 10 Zeichen geschrieben und haben keine Apostrophe.
Die richtigen Wörter sind eine zufällig ausgewählte Teilmenge der englischen SCOWL-Wortliste (Größe 50).
Die falschen Wörter werden auf zwei Arten generiert: Tauschen und Ersetzen.
Die "Austausch" -Wörter werden unter Verwendung eines modifizierten Fisher-Yates-Shuffle für die Buchstaben zufällig ausgewählter (realer) Wörter erzeugt. Anstatt die Buchstaben jedes Mal auszutauschen, kann ein Buchstabe ausgetauscht werden oder nicht (die Wahrscheinlichkeit variiert, sodass einige Wörter realistischer sind als andere). Wenn das neue Wort mit einem vorhandenen Wort übereinstimmt, wird das Ergebnis verworfen und ein anderes Wort generiert.
Die "Substitutions" -Wörter werden mit einer ähnlichen Methode erzeugt, aber anstatt den Buchstaben durch einen anderen Buchstaben zu tauschen, hat jeder Buchstabe die Möglichkeit, durch einen anderen zufälligen Buchstaben ersetzt zu werden.
Jede Methode wird verwendet, um 50% der gefälschten Wörter zu generieren.
Wertung
Ihre Funktion muss kleiner als 150 Byte sein . Die Wertung wird wie folgt ermittelt:
percentage of answers correct + ((150 - length of program) / 10)
Regeln
Da es sich um eine große Anzahl von Testfällen handelt (jede Wortliste besteht aus 1000 Wörtern), ist ein automatisiertes Testprogramm in Ordnung. Der automatisierte Tester zählt nicht zur Länge des Programms. Es sollte jedoch veröffentlicht werden, damit andere es testen können.
- Keine Lücken.
- Keine integrierten Funktionen für Rechtschreibung / Wörterbuch.
Ressourcen
Liste der Wörter: http://pastebin.com/Leb6rUvt
Liste der nicht Wörter (aktualisiert) : http://pastebin.com/rEyWdV7S
Andere Ressourcen (SCOWL-Wortliste und der Code, der zum Generieren der zufälligen Wörter verwendet wird): https://www.dropbox.com/sh/46k13ekm0zvm19z/AAAFL25Z8ogLvXWTDmRwVdiGa?dl=0
quais
, paves
, colic
, supermax
. (Randnotiz: Ich war erfreut herauszufinden, dass dies supermax
ein tatsächliches Wort ist)