大好き/usr/share/dict/words
です。とても便利です!できる限り、すべてのプログラムで使用します。単語の個性をテストすることで、この非常に便利なファイルを利用することができます。
入力
- 単語; このチャレンジで任意の文字列として定義されています
/usr/share/dict/words
あるフォーマットで; ハードコーディングし、ディスクから読み取り、2番目の引数として想定することができます。
出力
- 言葉の個性(下記参照)
単語の個性は次の方程式から導出されます。
<the number of words for which it is a substring> / <length of the word>
例を見てみましょう:
hello
。(helloの長さ)でhello
割った部分文字列を含む12の単語があり5
、helloの個性は12/5
または2.4
PSこれはcodegolfであるため、個性スコアが低いほど、より個性的です
個性は長い言葉なので、プログラムはできるだけ短くする必要があります
幸運を!
テストケース
この便利なNode.jsスクリプトを使用できます。これは、コードに適合するためのチャレンジ要件に適合します。また、テストケースの生成方法も示します。
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}`)
})
テストケース:
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