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
code-golf
string
subsequence
MayorMonty
sumber
sumber
Jawaban:
05AB1E , 9 byte
Cobalah online!
sumber
Pesta,
41,39,34,33, 26 byteEDIT:
Solusi yang agak sepele di bash + coreutils
Golf
Uji
sumber
grep -ic $1
berhasilgrep -i $1|wc -l
?Python 3,
5249 byte-3 byte terima kasih kepada Kade, untuk mengasumsikan
w
menjadi daftar kata sebagai daftar:Solusi sebelumnya:
Diasumsikan
w
sebagai daftar kata. Saya memilih Python 3 karena dalam daftar kata saya ada beberapa karakter Non-ASCII dan Python 2 tidak menyukainya.sumber
f=lambda s,w:w>[]and (s in w[0])/len(s)+f(s,w[1:])
and
dan(
membuatnya 49 byte.Perl 6 ,
45 36 3332 bytedaftar kata sebagai nama file
f
, 45 bytedaftar kata sebagai daftar
l
, 36 bytemenggunakan variabel placeholder, dan membalikkan (
R
) meta-operator, 33 bytegunakan
.comb
untuk mendapatkan daftar karakter, daripada.chars
untuk mendapatkan hitungan, 32 byteDiperluas:
sumber
awk: 31 byte
Melewati kata sebagai
w
variabel keawk
perintah, dan file di<stdin>
:Output sampel:
sumber
PHP, 54 byte
Mengasumsikan daftar kata dalam
$w
.sumber
Clojure, 53 byte
Tidak terlalu menarik: /
Itu
1.
ada untuk mengubah rasional menjadi pelampung. Saya memasukkan kata-kata menjadiW
seperti itu:sumber