Saya suka /usr/share/dict/words
; ini sangat berguna! Saya menggunakannya untuk semua program saya, kapan pun saya bisa! Anda akan memanfaatkan file yang sangat berguna ini untuk digunakan, dengan menguji individualitas kata.
Memasukkan
- Kata; didefinisikan dalam tantangan ini sebagai string karakter apa pun
/usr/share/dict/words
dalam beberapa format; Anda dapat membuat kode, membaca dari disk, menganggapnya sebagai argumen kedua, apa pun yang paling masuk akal dalam tantangan Anda
Keluaran
- Sebuah kata individualitas (lihat di bawah)
Individualitas kata berasal dari persamaan berikut:
<the number of words for which it is a substring> / <length of the word>
Mari kita lihat sebuah contoh:
hello
. Ada 12 kata yang memiliki substring hello
di dalamnya, dibagi dengan 5
(panjang halo), dan individualitas halo adalah 12/5
atau2.4
PS Ini codegolf , jadi semakin rendah skor individualitas, semakin individu
Karena individualitas adalah kata yang panjang, program Anda harus sesingkat mungkin
Semoga berhasil!
Uji Kasus
Anda dapat menggunakan skrip Node.js yang nyaman ini, yang sesuai dengan persyaratan tantangan agar sesuai dengan kode Anda. Ini juga bagaimana saya membuat test case:
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}`)
})
Kasus uji:
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