pengantar
Dobble / SpotIt adalah permainan kartu, di mana orang harus melihat simbol yang sama pada pasangan kartu dalam waktu singkat, menunjukkannya dan pindah ke pasangan berikutnya. Setiap kartu memiliki banyak simbol (8 dalam versi normal), tetapi persis satu yang umum di antara setiap pasangan kartu.
Contoh dari salinan fisik game:
Tantangan
Menulis sebuah program, yang diberi set simbol (karakter ascii tunggal) dan jumlah simbol pada kartu tunggal akan menghasilkan kartu daftar keluaran dengan simbol untuk setiap kartu. Jelas ada banyak kombinasi yang setara, program Anda hanya perlu menulis kombinasi yang menghasilkan jumlah kartu terbesar untuk input yang diberikan.
Ini adalah kode-golf, jadi kodenya lebih pendek, lebih baik.
Akan lebih bagus jika perhitungan akan selesai sebelum panasnya kematian alam semesta untuk kasus yang paling rumit.
Memasukkan
Dua argumen berfungsi / stdin (pilihan Anda)
Pertama-tama mereka adalah kumpulan simbol, seperti 'ABCDE "atau [' A ',' B ',' C ',' D ',' E '] - pilihan format Anda, baik itu string, set, list, stream , atau apa pun yang idiomatis untuk bahasa pilihan. Karakter akan diberikan dari set [A-Za-z0-9], tidak ada duplikat (jadi ukuran maksimum set simbol input adalah 62). Mereka tidak akan perlu dipesan dalam ( sehingga Anda bisa mendapatkan "yX4i9A" juga untuk kasus 6-simbol).
Argumen kedua adalah bilangan bulat, menunjukkan jumlah simbol pada kartu tunggal. Itu akan menjadi <= dari ukuran set simbol.
Keluaran
Cetak beberapa baris yang dipisahkan oleh baris baru, masing-masing mengandung simbol untuk kartu tunggal.
Contohnya
ABC
2
>>>>
AB
BC
AC
Atau
ABCDEFG
3
>>>>
ABC
BDE
CEF
BFG
AEG
CDG
ADF
Atau
ABCDE
4
>>>>
ABCD
Petunjuk
- Jumlah kartu yang dihasilkan tidak boleh lebih besar dari jumlah simbol yang berbeda dan dalam banyak kombinasi akan jauh lebih kecil
- Anda mungkin ingin membaca beberapa latar belakang matematika jika Anda memerlukan bantuan dengan sisi matematika masalah
Ini adalah tantangan golf kode pertama saya, jadi tolong maafkan masalah yang mungkin terjadi dengan pemformatan / gaya - Saya akan mencoba memperbaiki kesalahan jika Anda mengarahkannya dalam komentar.
('abcdefghijklmnopqrstu', 5)
-> ['abcde', 'afghi', 'ajklm', 'anopq', 'arstu', 'bfjnr', 'bgkpt', 'bhlou', 'bimqs', 'cfkqu', 'cgjos', 'chmpr', 'cilnt', 'dfmot', 'dglqr', 'dhkns', 'dijpu', 'eflps', 'egmnu', 'ehjqt', 'eikor']
atau solusi kerja 21 kartu lainnya. (Perhatikan bahwa ini adalah bidang hingga proyektif pesanan 4).