Дана строка. Для каждого символа, который в ней встречается, найдите длину его
самой длинной серии — максимального числа подряд идущих одинаковых символов.
type Run struct {
Char rune
Len int
}
// MaxRuns возвращает по одному Run на каждый различный символ s.
// Порядок: по убыванию Len, при равных Len — по возрастанию Char.
func MaxRuns(s string) []Run
Пример
"ddeeffffggdd" → [{f 4} {d 2} {e 2} {g 2}] // f:4, d:2, e:2, g:2
"abcab" → [{a 1} {b 1} {c 1}]
"" → []
У d две серии длины 2 — в ответ идёт максимум, а не сумма. Символы — это руны
(строка в UTF-8), регистр различается: a и A — разные символы.
Ограничения: 0 ≤ len(s) ≤ 10⁶. Ожидается O(n) на проход плюс сортировка
различных символов.
Устно: как напечатать ответ в виде f:4, d:2, e:2, g:2? Почему на собесе
важно сразу уточнить порядок вывода?
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.