Deskripsi tantangan
Sebuah tali Langford order Ndidefinisikan sebagai berikut:
- Panjang string sama dengan
2*N, - String berisi
Nhuruf pertama dari alfabet bahasa Inggris, setiap huruf muncul dua kali, - Untuk setiap pasangan huruf yang sama, ada
Msurat-surat antara mereka, di manaMposisi bahwa surat di alfabet (A = 1,B = 2,...,Z = 26).
Sebagai contoh, hanya dua untaian urutan Langford yang mungkin 3adalah BCABACdan CABACB. Seperti yang Anda lihat, dalam kedua string ini ada satu huruf antara dua A, dua huruf antara Bdan tiga huruf antara C. Dengan bilangan bulat positif N, hasilkan semua string Langford pesanan N(dalam format apa pun yang masuk akal: cetak satu per satu dipisahkan oleh baris baru, kembalikan daftar / array ...).
Input / output sampel
3: [CABACB, BCABAC]
4: [DACABDCB, BCDBACAD]
5: # no output #
7: [GCFBECBDGFEADA, GBFCBDECGFDAEA, GBDFBCEDGCFAEA, GCAFACDEGBFDBE, GADAFCEDGCBFEB, GACAFDCEGBDFBE, GDAEAFDCGEBCFB, GBDEBFCDGECAFA, EGBFCBEDCGFADA, CGDFCBEDBGFAEA, EGDAFAEDCGBFCB, EGBCFBECDGAFAD, AGABFDBECGDFCE, EGADAFECDGBCFB, AGABEFBCDGECFD, BGDBCEFDCGAEAF, FBGDBCEFDCGAEA, BFGBAEADFCGEDC, CFGACADEFBGDBE, EAGAFBEDBCGFDC, BCGBFCEADAGFED, DAGAFDBECBGFCE, EBGCBFECDAGAFD, CEGDCFBEDBGAFA, CEGBCFBEDAGAFD, BDGBCFDECAGAFE, EFAGACEDFCBGDB, DFAGADEBFCBGEC, AFAGBDEBFCDGEC, DFAGADCEFBCGBE, ECFGBCEBDFAGAD, DEFGADAECFBGCB, CDFGCBDEBFAGAE, EBDGBFEDACAGFC, CDEGCFDAEABGFB, AEAGCDFECBDGBF, FAEAGCDFECBDGB, DFCEGDCBFEBAGA, BFCBGDCEFADAGE, ECFDGCEBDFBAGA, DAFAGDCEBFCBGE, BCFBGCDEAFADGE, AEAFGBDEBCFDGC, ADAFGCDEBCFBGE, AFACEGDCFBEDBG, BFCBEGCDFAEADG, EBFDBGECDFACAG, BEFBCGDECFADAG, EBDFBGEDCAFACG, AEAFCGDECBFDBG, AEADFGCEDBCFBG, ADAEFGDBCEBFCG]
12: # <216288 strings> #
Catatan
- Langford strings of order
Nhanya dapat diproduksi ketikaN ≡ 0 (mod 4)atauN ≡ 3 (mod 4), - Anda dapat menggunakan huruf besar dan kecil,
- Anda juga dapat menggunakan nomor berikutnya (
012...atau123...bukanABC...) - Urutan string di mana mereka akan muncul karena output tidak ditentukan,
- Keluaran bisa sangat panjang (misalnya, ada lebih dari 5 triliun urutan Langford yang berbeda
20), sehingga program Anda sebenarnya tidak perlu menampilkan semuanya, tetapi harus bekerja secara teori (diberikan waktu dan memori yang cukup). - Tantangan ini telah diambil dari / r / dailyprogrammer , semua kredit diberikan ke / u / XenophonOfAthens
4
Ada tantangan terkait erat di kotak pasir. Meskipun sama sekali tidak diperlukan itu biasanya ide yang bagus dan mungkin sopan untuk memeriksa di sana juga untuk duplikat.
—
Martin Ender
Bisakah kita hanya menampilkan array angka?
—
Leaky Nun
@ LeakyNun: Tentu, kenapa tidak. Saya memperbarui deskripsi.
—
shooqie