Anda menyediakan dukungan teknis untuk para Bruce Dickenson saat ia menghasilkan sesi rekaman Blue Oyster Cult. Ketika dia meminta lebih banyak cowbell , Anda bisa memberikannya kepadanya.
Tugas Anda
Tulis program atau fungsi yang mengambil string (atau setara dalam bahasa Anda) sebagai input, dan menghasilkan string terkait yang berisi satu cowbell lagi.
Berapa banyak cowbell yang berisi string?
Jumlah cowbell yang berisi string sama dengan jumlah maksimum salinan berbeda dari "cowbell" yang dapat diperoleh dengan meng-permutasi karakter string. Misalnya, "bbbccceeellllllooowwwwwwwww"
berisi 3 lonceng, sementara "bbccceeellllllooowwwwwwwww"
dan "bbbccceeelllllooowwwwwwwww"
masing - masing berisi 2 lonceng, dan "cowbel"
berisi 0 lonceng.
Bagaimana seharusnya output terkait dengan input?
Output harus terdiri dari rangkaian, dalam urutan ini, dari string input dan awalan terpendek dari string input yang diperlukan untuk meningkatkan jumlah cowbells.
Misalnya, "bbbccceeelllllooowwwwwwwww"
hanya perlu satu tambahan "l"
untuk mengandung 3 lonceng bukannya 2; awalan terpendek yang berisi bahwa "l"
adalah "bbbccceeel"
. Karena itu, jika inputnya adalah "bbbccceeelllllooowwwwwwwww"
, maka outputnya seharusnya "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
Teknisnya
- Anda dapat berasumsi bahwa input hanya berisi karakter ASCII yang dapat dicetak. Jika ada satu atau dua karakter yang mengganggu pemrosesan string bahasa Anda (seperti baris baru atau
\
), Anda dapat mengasumsikan bahwa input tidak mengandung mereka — sebutkan saja batasan ini. - Anda selanjutnya dapat mengasumsikan bahwa karakter alfabet dalam input semuanya huruf kecil, atau semua huruf besar. Jika Anda memilih untuk tidak mengambil salah satu dari ini, hitung cowbells case-insensitive.
- Anda juga dapat mengasumsikan bahwa input berisi setidaknya satu salinan dari masing-masing karakter
b
,c
,e
,l
,o
, danw
. Ini sama dengan mengasumsikan bahwa beberapa awalan string dapat digabungkan untuk menghasilkan string yang berisi lebih banyak cowbell. (Perhatikan bahwa string input itu sendiri tidak perlu berisi cowbell.) - Jika bahasa Anda memiliki builtin yang memecahkan masalah ini ... maka benar-benar menggunakannya, sungguh, betapa hebatnya itu.
Popok berlapis emas
Karena waktu studio rekaman mahal, kode Anda harus sesingkat mungkin. Entri dengan byte paling sedikit adalah pemenangnya!
Uji kasus
( tautan pastebin untuk lebih mudah menyalin / menempel)
Masukan tes # 1: "christopher walken begs for more cowbell!"
Tes keluaran # 1: "christopher walken begs for more cowbell!christopher wal"
Masukan tes 2: "the quick brown fox jumps over the lazy dog"
Tes keluaran # 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Masukan tes 3: "cowbell"
Tes keluaran # 3: "cowbellcowbell"
Masukan tes # 4: "cowbell cowbell cowbell"
Tes keluaran # 4: "cowbell cowbell cowbellcowbell"
Masukan tes # 5: "cowbell cowbell cowbel"
Uji output # 5: "cowbell cowbell cowbelcowbel"
Masukan tes # 6: "bcelow"
Uji keluaran # 6: "bcelowbcel"
Masukan tes # 7: "abcdefghijklmnopqrstuvwxyz"
Tes keluaran # 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Masukan tes 8: "cccowwwwbbeeeeelllll"
Tes keluaran # 8: "cccowwwwbbeeeeelllllccco"
Masukan tes 9: "be well, programming puzzles & code golf"
Uji keluaran # 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Masukan tes # 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Uji keluaran # 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut lab"
Masukan tes # 11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
"
Hasil tes # 11:
"c-c-b-c
i have a cow, i have a bell.
uh! bell-cow!
i have a cow, i have a cowbell.
uh! cowbell-cow!
bell-cow, cowbell-cow.
uh! cow-cowbell-bell-cow.
cow-cowbell-bell-cow!
c-c-b-c
i have a cow, i have a bell"
test case -> result
dalam satu blok kode besar yang telah diformat. Ini jauh lebih bagus secara estetika dan lebih mudah untuk menyalin pasta.
L
s dalam kata, ini bukan apa yang ditanyakan oleh tantangan.