Код Middle Реализация с нуля обновлено

Убрать подряд идущие повторы букв

Условие

«Кккоооот Бааарссиккк» → «Кот Барсик». Схлопни подряд идущие одинаковые буквы в одну, пробелы между словами сохрани.

Примеры

removeRepeats("Кккоооот Бааарссиккк зззапрыыгнннул   наааа зааабоооррррр") // "Кот Барсик запрыгнул   на забор"
removeRepeats("ааа") // "а"
removeRepeats("") // ""

Как подойти

Ожидаемый вывод «Кот» из «Кккоооот» скрыто задаёт требование: сравнивать надо без учёта регистра, сохраняя регистр первого символа. Это стоит уточнить у интервьюера вслух, а не угадать. Сравнение с последним добавленным символом, а не с соседним в исходной строке - принципиально: иначе 'ааа' схлопнется только частично при некоторых реализациях. Разбиение по /(\s+)/ с группой захвата сохраняет пробелы в результате, поэтому исходное форматирование не теряется. Регулярка /(.)\1+/g с заменой на '$1' решает то же в одну строку - назови и её.

Подсказки: 3
  1. Сравнивай с последним добавленным символом, а не с предыдущим символом исходной строки.
  2. «Кккоооот» даёт «Кот», а не «Ккот» - значит регистр при сравнении не учитывается.
  3. Разбиение с сохранением разделителя позволяет не потерять пробелы.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.