Реализуйте строковое сжатие: заменить подряд идущие одинаковые символы на символ и количество его повторений.

RLE кодирует каждую непрерывную группу одинаковых символов парой «символ + число». Один проход даёт O(n) по длине строки; одинаковые символы в разных группах не объединяются.

Короткий ответ

Что ответить на собеседовании

RLE кодирует каждую непрерывную группу одинаковых символов парой «символ + число». Один проход даёт O(n) по длине строки; одинаковые символы в разных группах не объединяются.

Подробный разбор

Ответ с пояснениями

RLE кодирует каждую непрерывную группу одинаковых символов парой «символ + число». Один проход даёт O(n) по длине строки; одинаковые символы в разных группах не объединяются.

Вариант с записью количества даже для одиночного символа:

from itertools import groupby

def compress(text):
    return "".join(
        char + str(sum(1 for _ in group))
        for char, group in groupby(text)
    )

compress('aaabbc') вернёт 'a3b2c1', пустая строка — ''. Такое представление не всегда короче исходного. Если вход может содержать цифры, для однозначного восстановления потребуется дополнительное правило разделения или экранирования.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее