Вы обеспечиваете техническую поддержку в Брюс 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
в этом слове есть две буквы , это не то, что требует задача.