Контест Junior Строки, байты и руны обновлено
Сжатие RLE для строк UTF-8 на Go
Условие
Сожмите каждую строку кодированием длин серий: серия одинаковых символов записывается как символ и длина серии, длина 1 не пишется. Например, aaabcc превращается в a3bc2. Строки содержат только буквы (латиница и кириллица), цифр нет.
Ввод: n (1 ≤ n ≤ 500), затем n непустых строк. Суммарно до 30 КБ.
Вывод: n сжатых строк.
Пример
2
aaabcc
жжжук
a3bc2
ж3ук
Как подойти
range по рунам, счётчик серии, strings.Builder.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Разворот строки с кириллицей на Go
Следующий вопрос
Палиндром с кириллицей и знаками на Go
Ещё по теме «Строки, байты и руны»
- Байты и символы в строке Go
- Перенос текста по ширине в символах на Go
- Что выведет Go: len и range по строке с кириллицей
- Что выведет Go: руны, байты и преобразования
- Что выведет Go: сравнение и срезы строк
- strings.Builder
- Копирует ли []byte(s)
- Склейка строк в цикле