Ich liebe /usr/share/dict/words
; es ist so praktisch! Ich benutze es für alle meine Programme, wann immer ich kann! Sie werden diese nützliche Datei nutzen, indem Sie die Individualität eines Wortes testen.
Eingang
- Ein Wort; In dieser Herausforderung als eine beliebige Zeichenfolge definiert
/usr/share/dict/words
in irgendeinem Format; Sie können es hart codieren, von der Festplatte lesen und als zweites Argument annehmen, was auch immer für Ihre Herausforderung am sinnvollsten ist
Ausgabe
- Ein Wort Individualität (siehe unten)
Die Individualität eines Wortes ergibt sich aus der folgenden Gleichung:
<the number of words for which it is a substring> / <length of the word>
Schauen wir uns ein Beispiel an :
hello
. Es gibt 12 Wörter, die den Teilstring enthalten hello
, geteilt durch 5
(Hallo Länge), und Hallo Individualität ist 12/5
oder2.4
PS Dies ist Codegolf. Je niedriger der Individualitätswert, desto individueller
Da Individualität ein langes Wort ist, muss Ihr Programm so kurz wie möglich sein
Viel Glück!
Testfälle
Sie können dieses praktische Node.js-Skript verwenden, das den Anforderungen der Herausforderung entspricht und Ihrem Code entspricht. So habe ich auch die Testfälle generiert:
var fs = require("fs");
var word = process.argv[2];
process.stdout.write("Reading file...")
fs.readFile("/usr/share/dict/words", function(err, contents) {
console.log("Done")
if (err) throw err;
words = contents.toString().split("\n");
var substrings = words.filter(w => w.indexOf(word) > -1).length;
var length = word.length;
console.log(`${word} => ${substrings} / ${length} = ${substrings / length}`)
})
Testfälle:
hello => 12 / 5 = 2.4
individuality => 1 / 13 = 0.07692307692307693
redic => 52 / 5 = 10.4
ulous => 200 / 5 = 40
challen => 15 / 7 = 2.142857142857143
ges => 293 / 3 = 97.66666666666667
hidden => 9 / 6 = 1.5
words => 12 / 5 = 2.4
aside => 8 / 5 = 1.6