Ви забезпечуєте технічну підтримку в Брюс Dickenson , як він проводить запис сеансу Blue Oyster Cult. Коли він попросить більше коров’ячої капусти , ви можете дати йому це.
Ваше завдання
Напишіть програму або функцію, яка приймає рядок (або еквівалент у вашій мові) як вхідний, і виводить відповідний рядок, що містить ще одну обмотку.
Скільки ковбачків містить рядок?
Кількість стрибків, що містять рядок, дорівнює максимальній кількості чітко виражених копій "каучук", які можна отримати, перевівши символи рядка. Так , наприклад, "bbbccceeellllllooowwwwwwwww"
містить 3 дзвіночки, в той час , "bbccceeellllllooowwwwwwwww"
і "bbbccceeelllllooowwwwwwwww"
кожен з яких містить 2 дзвіночки, і "cowbel"
містить 0 дзвіночки.
Як результат повинен бути пов'язаний із входом?
Вихід повинен складатися з конкатенації в такому порядку вхідного рядка та найкоротшого префіксу вхідного рядка, необхідного для збільшення кількості обмоток.
Наприклад, "bbbccceeelllllooowwwwwwwww"
потрібен лише один додатковий, "l"
щоб містити 3 корівника замість 2; найкоротший префікс, який містить, що "l"
є "bbbccceeel"
. Тому, якщо вхід є "bbbccceeelllllooowwwwwwwww"
, то вихід повинен бути "bbbccceeelllllooowwwwwwwwwbbbccceeel"
.
Технічні характеристики
- Ви можете припустити, що вхід містить лише друковані символи ASCII. Якщо є один або два символи, які дратують обробку рядків у вашій мові (наприклад, нові рядки або
\
), ви можете припустити, що вхідні дані не містять їх - просто згадайте це обмеження. - Ви також можете припустити, що алфавітні символи у введеному регістрі - це всі малі літери або всі великі регістри. Якщо ви вирішите не брати на себе жодне з них, порахуйте коров'ячих дзвонів невідчутливо.
- Далі Ви можете припустити , що введення містить , щонайменше , одну копію кожного з персонажів
b
,c
,e
,l
,o
, іw
. Це еквівалентно припущенню, що якийсь префікс рядка може бути приєднаний до нього, щоб створити рядок, що містить більше каучукових звуків. (Зверніть увагу, що сам рядок введення не повинен містити обмоту.) - Якщо у вашій мові є вбудований елемент, який вирішує цю проблему ... тоді повністю використовуйте її, серйозно, наскільки приголомшливо це.
Золоті підгузники
Оскільки час запису в студії дорогий, код повинен бути максимально коротким. Запис з найменшими байтами - переможець!
Тестові справи
( посилання на пастину для більш простого копіювання / вставки)
Тестовий вхід №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, це не те, що задає проблема.