Нет, надо просто прочитать n символов и поддерживать текущий символ, индекс начала группы и длину группы.
Когда прочитали символ, если он не равен предыдущему, то выводите группу. Если равен, то увеличивайте длину группы. После цикла не забудьте вывести последнюю группу. Еще, для удобство изначально надо инициализировать ваши переменный группой длины 1 с первого символа и начать итерироваться со второго.