(и на мой непрофессиональный взгляд довольно классно)
Я бы сказал - совсем не классно, по-джуниорски.

Много бизнес-логики засунуто в самую низкоуровневую часть реализации (цепочка else if-ов внутри цикла с какими-то мутабельными переменными); много копипасты. Поэтому трудно понять, что делает алгоритм, и проблематично его поддерживать.
Технический момент: создавать строку с помощью += есть антипаттерн. Каждый промежуточный результат уходит в мусор, что означает квадратичный мусор. Когда строку создают из большого числа частей, их собирают в массив и применяют join.