Sen hiç teknik destek sağlıyor o Blue Oyster Cult kayıt oturumu üretir olarak Bruce Dickenson'dan. Daha fazla inek çanı istediğinde, ona verebilirsin.
Senin görevin
Girdi olarak bir dize (veya kendi dilinizde eşdeğeri) alan ve bir tane daha çıngırak içeren ilgili bir dize çıkaran bir program veya işlev yazın.
Bir dize kaç tane zil içerir?
Bir dizgenin içerdiği inek zillerinin sayısı, dizginin karakterlerine izin verilerek elde edilebilecek "cowbell" in maksimum sayıda farklı kopyasına eşittir. Örneğin, "bbbccceeellllllooowwwwwwwww"
3 iken, cowbells içerir "bbccceeellllllooowwwwwwwww"
ve "bbbccceeelllllooowwwwwwwww"
her biri 2 cowbells içerir ve "cowbel"
0 cowbells içerir.
Çıktı girdiyle nasıl ilişkili olmalıdır?
Çıktı, bu sırayla, giriş dizgisinin birleştirilmesinden ve inek zillerinin sayısını artırmak için gereken giriş dizgisinin en kısa önekinden oluşmalıdır.
Örneğin, "bbbccceeelllllooowwwwwwwww"
sadece "l"
2 yerine 3 inek çanı içerecek bir ek gerekir; Bu içeren kısa öneki "l"
olan "bbbccceeel"
. Bu nedenle, eğer giriş ise "bbbccceeelllllooowwwwwwwww"
, çıkış olmalıdır "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
teknik ayrıntıların
- Girişin yalnızca yazdırılabilir ASCII karakterleri içerdiğini varsayabilirsiniz. Dilinizin dize işlemesi için can sıkıcı bir veya iki karakter varsa (örneğin yeni satırlar veya
\
), girişin bunları içermediğini varsayabilirsiniz - bu kısıtlamayı belirtin. - Girdideki alfabetik karakterlerin tümünün küçük harf veya tümünün büyük harf olduğunu da varsayabilirsiniz. Bunlardan birini almamaya karar verirseniz, cowbell'ları büyük küçük harf duyarlı olarak sayın.
- Sen ayrıca, girdi karakterlerinin her birinin en az bir kopyasını içeren varsayalım olabilir
b
,c
,e
,l
,o
, vew
. Bu, daha fazla cowbell içeren bir dize üretmek için dizenin bazı öneklerinin birleştirilebileceğini varsaymakla eşdeğerdir. (Giriş dizesinin kendisinin bir çıngırak içermesi gerekmediğine dikkat edin.) - Dilinizde bu sorunu çözen bir yapı varsa, o zaman onu tamamen ciddiye alın, bu ne kadar harika.
Altın kaplama çocuk bezi
Kayıt stüdyosu süresi pahalı olduğundan, kodunuz mümkün olduğu kadar kısa olmalıdır. En az bayt ile giriş kazanır!
Test durumları
( kolay kopyalama / yapıştırma için pastebin linki )
Test girişi # 1: "christopher walken begs for more cowbell!"
Test çıkışı # 1: "christopher walken begs for more cowbell!christopher wal"
Test girişi # 2: "the quick brown fox jumps over the lazy dog"
Test çıkışı # 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
Test girişi # 3: "cowbell"
Test çıkışı # 3: "cowbellcowbell"
Test girişi # 4: "cowbell cowbell cowbell"
Test çıkışı # 4: "cowbell cowbell cowbellcowbell"
Test girişi # 5: "cowbell cowbell cowbel"
Test çıkışı # 5: "cowbell cowbell cowbelcowbel"
Test girişi # 6: "bcelow"
Test çıkışı # 6: "bcelowbcel"
Test girişi # 7: "abcdefghijklmnopqrstuvwxyz"
Test çıkışı # 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
Test girişi # 8: "cccowwwwbbeeeeelllll"
Test çıkışı # 8: "cccowwwwbbeeeeelllllccco"
Test girişi # 9: "be well, programming puzzles & code golf"
Test çıkışı # 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
Test girişi # 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
Test çıkışı # 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"
Test girişi # 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!
"
Test çıkışı # 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
önceden biçimlendirilmiş büyük bir kod bloğunda kullanırlar. Estetik açıdan çok daha hoş ve kopyalamak için yapıştırmak daha kolay.
L
s vardır gerçeği dışında, sorduğu şey bu değil.