คุณจะให้การสนับสนุนเทคโนโลยีเพื่อบรูซเด็ตต์ขณะที่เขาผลิตเซสชั่นการบันทึกหอยนางรมสีฟ้าศาสนา เมื่อเขาขอกระดึงเพิ่มเติมคุณสามารถมอบให้เขาได้
งานของคุณ
เขียนโปรแกรมหรือฟังก์ชั่นที่รับสตริง (หรือเทียบเท่าในภาษาของคุณ) เป็นอินพุตและเอาต์พุตสตริงที่เกี่ยวข้องที่มีกระดึงอีกหนึ่งตัว
สตริงมีกระดิ่งกี่ตัว?
จำนวนของกระดึงที่มีจำนวนเท่ากับจำนวนสูงสุดของสำเนาที่แตกต่างกันของ "กระดึง" ที่สามารถรับได้โดยอนุญาตให้ตัวละครของสตริง ตัวอย่างเช่น"bbbccceeellllllooowwwwwwwww"
มี 3 cowbells ในขณะที่"bbccceeellllllooowwwwwwwww"
และ"bbbccceeelllllooowwwwwwwww"
แต่ละคนมี 2 cowbells และ"cowbel"
มี 0 cowbells
เอาต์พุตควรเกี่ยวข้องกับอินพุตอย่างไร
เอาต์พุตควรประกอบด้วยการต่อข้อมูลตามลำดับนี้ของสตริงอินพุตและส่วนนำหน้าสั้นที่สุดของสตริงอินพุตที่ต้องการเพื่อเพิ่มจำนวนของโคเบล
ตัวอย่างเช่น"bbbccceeelllllooowwwwwwwww"
ต้องการเพียงหนึ่งเพิ่มเติม"l"
เพื่อให้มี 3 cowbells แทน 2; คำนำหน้าสั้นที่สุดที่มีที่เป็น"l"
"bbbccceeel"
ดังนั้นถ้าใส่เป็นแล้วออกที่ควรจะเป็น"bbbccceeelllllooowwwwwwwww"
"bbbccceeelllllooowwwwwwwwwbbbccceeel"
technicalities
- คุณอาจสมมติว่าอินพุตมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น หากมีอักขระหนึ่งหรือสองตัวที่น่ารำคาญสำหรับการประมวลผลสตริงของภาษาของคุณ (เช่นการขึ้นบรรทัดใหม่หรือ
\
) คุณสามารถสมมติว่าอินพุตไม่ได้มีตัวอักษรเหล่านั้น - เพียงแค่พูดถึงข้อ จำกัด นี้ - คุณอาจสันนิษฐานได้ว่าตัวอักษรในอินพุตเป็นตัวพิมพ์เล็กทั้งหมดหรือเป็นตัวพิมพ์ใหญ่ทั้งหมด หากคุณเลือกที่จะไม่รับสิ่งใดสิ่งหนึ่งเหล่านี้ให้นับโคเบลล์เป็นกรณี ๆ ไป
- นอกจากนี้คุณยังอาจคิดว่าการป้อนข้อมูลที่มีอย่างน้อยหนึ่งสำเนาของแต่ละตัวละคร
b
,c
,e
,l
, และo
w
นี่เทียบเท่ากับการสมมติว่าคำนำหน้าบางส่วนของสตริงสามารถต่อกันเพื่อสร้างสตริงที่มีกระดึงมากขึ้น (โปรดทราบว่าสตริงอินพุตนั้นไม่จำเป็นต้องมีกระดึง) - หากภาษาของคุณมี builtin ที่สามารถแก้ปัญหานี้ได้ ... จากนั้นใช้มันทั้งหมดอย่างจริงจังนั่นช่างยอดเยี่ยม
ผ้าอ้อมชุบทอง
เนื่องจากเวลาในการบันทึกสตูดิโอมีราคาแพงรหัสของคุณจะต้องสั้นที่สุด รายการที่มีจำนวนไบต์น้อยที่สุดเป็นผู้ชนะ!
กรณีทดสอบ
( ลิงค์ pastebinเพื่อให้คัดลอก / วางได้ง่ายขึ้น)
ทดสอบอินพุต # 1: "christopher walken begs for more cowbell!"
ทดสอบผลลัพธ์ # 1: "christopher walken begs for more cowbell!christopher wal"
ทดสอบอินพุต # 2: "the quick brown fox jumps over the lazy dog"
ทดสอบผลลัพธ์ # 2: "the quick brown fox jumps over the lazy dogthe quick brown fox jumps over the l"
ทดสอบอินพุต # 3: "cowbell"
ทดสอบผลลัพธ์ # 3: "cowbellcowbell"
ทดสอบอินพุต # 4: "cowbell cowbell cowbell"
ทดสอบผลลัพธ์ # 4: "cowbell cowbell cowbellcowbell"
ทดสอบอินพุต # 5: "cowbell cowbell cowbel"
ทดสอบผลลัพธ์ # 5: "cowbell cowbell cowbelcowbel"
ทดสอบอินพุต # 6: "bcelow"
ทดสอบผลลัพธ์ # 6: "bcelowbcel"
ทดสอบอินพุต # 7: "abcdefghijklmnopqrstuvwxyz"
ทดสอบผลลัพธ์ # 7: "abcdefghijklmnopqrstuvwxyzabcdefghijkl"
ทดสอบอินพุต # 8: "cccowwwwbbeeeeelllll"
ทดสอบผลลัพธ์ # 8: "cccowwwwbbeeeeelllllccco"
ทดสอบอินพุต # 9: "be well, programming puzzles & code golf"
ทดสอบผลลัพธ์ # 9: "be well, programming puzzles & code golfbe well, programming puzzles & c"
ทดสอบอินพุต # 10: "lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. wow!"
ทดสอบผลลัพธ์ # 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"
ทดสอบอินพุต # 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!
"
ทดสอบผลลัพธ์ # 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
ในบล็อกโค้ดที่ฟอร์แมตแล้วขนาดใหญ่ มันสวยกว่าและคัดลอกแปะได้ง่ายกว่า
L
s ในคำนี้ไม่ใช่สิ่งที่ท้าทายถาม