Tantangan:
Saya memiliki ribuan lagu dalam koleksi musik saya, dan untungnya bagi saya, pemutar favorit saya memiliki fungsi pencarian. Saya juga memiliki ingatan yang luar biasa — saya dapat mengingat judul setiap lagu dalam koleksi saya. Namun, saya sangat malas dan tidak suka mengetik — setiap keystroke tambahan adalah tugas!
- Apa string terpendek yang harus saya cari untuk mengisolasi satu lagu? Bantu saya menghafal daftar kunci yang bisa saya gunakan untuk meminimalkan pengetikan saat mencari!
Ini kode-golf , jadi kode terpendek menang.
Aturan:
Diberikan daftar input judul lagu, buat daftar kunci pencarian dengan batasan sebagai berikut:
- Setiap judul lagu harus memiliki kunci pencarian.
- Jumlah karakter dalam daftar output harus sesedikit mungkin.
- Pemutar musik favorit saya adalah foobar2000 :
- Fungsi pencarian tidak peka huruf besar-kecil. (
apple
sama denganaPpLE
). - Setiap kunci pencarian harus terdiri dari satu atau lebih "kata", dalam urutan apa pun, dipisahkan oleh spasi:
- Setiap kata harus menjadi substring dari judul lagu yang sesuai.
- Jika substring yang sama ditentukan beberapa kali, maka harus terjadi beberapa kali dalam judul lagu yang sesuai.
- Jika substring itu sendiri berisi spasi, maka substring itu harus dikelilingi dengan tanda kutip.
- Fungsi pencarian tidak peka huruf besar-kecil. (
Petunjuk:
- Seringkali, untuk beberapa judul lagu, ada beberapa kunci pencarian yang memenuhi aturan 2. Dalam kasus seperti itu, salah satu tombol akan berfungsi, tetapi Anda mendapatkan poin brownies untuk mendaftar semuanya.
- Anda dapat berasumsi bahwa daftar input hanya akan karakter ASCII, tetapi poin brownies akan diberikan untuk kompatibilitas UTF-8.
- Apakah Aturan 3 sulit diikuti? Begini cara kerjanya:
Contoh:
Jika koleksi musik saya hanya terdiri dari dua album, Michael's Off the Wall dan Thriler :
Anda dapat menggunakan daftar di atas untuk menguji program Anda. Ini adalah versi mentah dari daftar kedua:
["Don't Stop 'Til You Get Enough","Rock with You","Working Day and Night","Get on the Floor","Off the Wall","Girlfriend","She's out of My Life","I Can't Help It","It's the Falling in Love","Burn This Disco Out","Wanna Be Startin' Somethin'","Baby Be Mine","The Girl Is Mine","Thriller","Beat It","Billie Jean","Human Nature","P.Y.T. (Pretty Young Thing)"]
["Wanta Be A Wanna B","Wanta Bea A Wanna B","Wanna Be A Wanna Bea"]
?