Провівши деякий час на цьому сайті, я прийшов насолоджуватися якомога коротшими речами. Це може бути причиною того, чому я останнім часом не один раз ображався на рядки, що містять одних і тих же символів. Ваше завдання - написати функцію або програму, яка конденсує заданий рядок відповідно до таких правил:
Почніть з конденсації 0 , тобто шукайте першу (ліву) пару тих самих символів з 0 іншими символами між ними. Якщо така пара знайдена, видаліть один із двох символів і перезапустіть алгоритм, виконавши ще одну конденсацію 0 . Якщо такої пари не знайдено, перейдіть до наступного кроку. Приклади:
programming-C0->programing
aabbcc-C0->abbcc
test-C0->testПотім виконайте 1-конденсацію , тобто знайдіть першу пару однакових символів із ще одним символом між ними. Якщо така пара знайдена, видаліть один із них та всі символи між ними та перезапустіть 0-конденсацією . Якщо такої пари не знайдено, перейдіть до наступного кроку. Приклади:
abacac-C1->acac
java-C1->jaПродовжуйте 2-конденсацію і так далі до n-конденсації, причому n - довжина вихідної струни, щоразу перезапускаючись після конденсації, видаляючи деякі літери. Приклади:
programing-C2->praming
abcdafg-C3->afg
Отриманий рядок називається скороченим і містить кожен символ максимум одночасно.
Вхід:
Нижній регістр друкованих символів ascii.
Вихід:
Конденсують рядки в відповідно до зазначених вище правилами.
Приклади:
examples -> es
programming -> praming
puzzles -> puzles
codegolf -> colf
andromeda -> a
abcbaccbabcb -> acb
if(x==1):x++ -> if(x+
fnabnfun -> fun
abcdefae -> abcde
Детальні приклади, щоб уточнити, як працює алгоритм:
fnabnfun -C0-> fnabnfun -C1-> fnabnfun -C2-> fnfun -C0-> fnfun -C1-> fun -C0-> fun
-C1-> fun -C2-> ... -C8-> fun
abcbaccbabcb -C0-> abcbacbabcb -C0-> abcbacbabcb -C1-> abacbabcb -C0-> abacbabcb
-C1-> acbabcb -C0-> acbabcb -C1-> acbcb -C0-> acbcb -C1-> acb -C0-> acb
-C1-> ... -C12-> acb
Ваш підхід не повинен реалізувати алгоритм зверху до тих пір, поки ваше рішення та алгоритм повернуть однаковий вихід для всіх дозволених входів. Це проблема з кодовим гольфом .
Дякуємо @Linus за корисні коментарі з пісочниці!