Terinspirasi oleh ini.
Diberikan string sebagai input yang hanya terdiri dari karakter alfabet huruf besar dan kecil, wicka-wub .
Bagaimana cara memasang string?
Contoh teks yang digunakan adalah "DJMcMayhem".
Pisahkan string sebelum setiap huruf besar, jadi Anda dapatkan ["D", "J", "Mc", "Mayhem"].
Selanjutnya, ambil dua bagian dari daftar sebagai sublists. Ini memberi kita [["D", "J"],["Mc", "Mayhem"]]. Jika daftar adalah panjang ganjil (yaitu 3), sublist pertama akan berisi substring tengah (yaitu [[a,b], [c]]).
Buat daftar wickas dan wubs. Jumlah wickas harus sebanyak panjang bagian pertama dari daftar input (yaitu ["D", "J"] -> ["wicka", "wicka"]), dan jumlah wubsharus sebanyak panjang bagian kedua dari daftar input. Dalam kasus kami, ini memberi ["wicka", "wicka", "wub", "wub"].
Sekarang gabungkan sublist dari daftar input ke dalam string tunggal dan ratakan.
Saat ini kami memiliki ["DJ", "McMayhem"]dan ["wicka", "wicka", "wub", "wub"].
Bergabung dengan wicka/ wubdaftar dengan -s: wicka-wicka-wub-wub. Berlaku a -. Jika ada lebih dari satu huruf kapital di input, tambahkan yang lain -.
Sekarang kita punya ["DJ", "McMayhem"]dan "-wicka-wicka-wub-wub-".
Tambahkan wicka-wubstring ke akhir item pertama dalam daftar input, untuk mendapatkan ["DJ-wicka-wicka-wub-wub-","McMayhem"].
Terakhir, ulangi karakter di bagian kedua dari string dengan nilai 0-indexed mereka di string input asli. Dalam contoh kita, itu berarti yang pertama Makan diulang dua kali, lalu ctiga kali, dan Mempat kali berikutnya . Bergabunglah dengan daftar, jadi bagian kedua (bagian yang baru saja Anda ulangi hurufnya) ditambahkan ke bagian pertama ( "DJ-wicka-wicka-wub-wub-").
Hasil akhir dari input:
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Total proses:
["D", "J", "Mc", "Mayhem"] =>
[["D", "J"], ["Mc", "Mayhem"]] =>
["DJ", "McMayhem"] and ["wicka", "wicka", "wub", "wub"] =>
["DJ", "McMayhem"] and "-wicka-wicka-wub-wub-" =>
["DJ-wicka-wicka-wub-wub-", "McMayhem"] =>
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Tugas Anda
Tugas Anda adalah, diberi string yang hanya terdiri dari karakter alfabet huruf besar dan kecil, menghasilkan versi wicka-wubbed dari string itu.
Beberapa aturan
- Masukan dapat seluruhnya terdiri dari huruf kecil, atau seluruhnya huruf besar, atau jumlah masing-masing, tetapi tidak ada karakter lain.
- Jika input terdiri dari huruf kecil seluruhnya, output yang benar harus menjadi tahap akhir (string dengan karakter diulang sesuai dengan posisi 0-diindeks). Seharusnya tidak ada
wickaatauwubdalam kasus itu. - Aturan standar berlaku, program atau fungsi lengkap, terserah Anda.
- Ini adalah kode-golf sehingga kode terpendek menang.
GoodLuck-wicka-wicka-wub-GGGGGGGGooooooooollllllllllfffffffffffeeeeeeeeeeerrrrrrrrrrrrrssssssssssssss
Uji kasus
input => output
DJMcMayhem => DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm
PPCG => PP-wicka-wicka-wub-wub-CCGGG
foobarbaz => fooooobbbbaaaaarrrrrrbbbbbbbaaaaaaaazzzzzzzzz
FooBarBaz => FooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
HelloWorld => Hello-wicka-wub-WWWWWoooooorrrrrrrllllllllddddddddd
Test => Test-wicka
UPPER => UPP-wicka-wicka-wicka-wub-wub-EEERRRR
fooBarBaz => fooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
5huruf besar?
foobarbazkembali saja foobarbaz? Apakah ada bagian kedua?