Условие

Для AAAAAABBBCDDDEEF корректное RLE-представление — A6B3C1D3E2F1. В ожидаемом ответе условия ошибочно указаны количества A и D.

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

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

Для AAAAAABBBCDDDEEF корректное RLE-представление — A6B3C1D3E2F1. В ожидаемом ответе условия ошибочно указаны количества A и D.

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

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

Условие

Условие

Сложность: EASY

Дан массив символов - буквы английского алфавита. Символы часто повторяются - один символ подряд несколько раз.

Нужно реализовать RLE сжатие - писать символ в output только один раз, а следом за ним - число повторений.

Пример: Input: AAAAAABBBCDDDEEF Output: A5B3C1D4E2F1

Ответ

Для AAAAAABBBCDDDEEF корректное RLE-представление — A6B3C1D3E2F1. В ожидаемом ответе условия ошибочно указаны количества A и D.

Считаем длину каждой последовательной группы:

def rle(text):
    if not text:
        return ""
    result = []
    current, count = text[0], 1
    for char in text[1:]:
        if char == current:
            count += 1
        else:
            result.append(current + str(count))
            current, count = char, 1
    result.append(current + str(count))
    return "".join(result)

Последнюю группу добавляют после цикла. Время O(n), память под результат O(n). Одиночные символы тоже получают суффикс 1; группы одного символа в разных местах не объединяются.

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

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

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

Подробнее