Задача про количество пробелов

В чатике для начинающих программистов один человек выложил задачку.
Задача «Loneliest character». Напишите функцию loneliest(), которая принимает строку вида «a b z p c» и возвращает массив символов, у которых больше всего пробелов справа и слева.
Примеры:
'a b c' => ['b']
'a bcs d k' => ['d']
' a b sc p t k' => ['p']
'a b c de' => ['b', 'c']
' a b c de ' => ['b']
'abc' => ['a', 'b', 'c']
Примечание:
- Начальные и конечные пробелы в строке не считаем
- Строки содержат только уникальные символы от a до z;
- Порядок символов в массиве не имеет значения.
Вот, как пытался решать задачу человек, который скинул её в чат.
Я сначала выписывал индексы букв из строки. Потом между этими индексами считал количество пробелов и записывал значение. Потом складывал два смежных значения и выписывал самое большое, потом запутался.
Пользователь чата
Я минут 20 ломал голову, думал уже бросит затею, но потихоньку родилась вот такая реализация. Она не идеальная (далеко), но с поставленной задачей справляется.
По ссылке можно посмотреть исходный код.