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