Написано: 28.03.2023

E. Удалить повторяющиеся пробелы в строке.

Задание было предложено на тесте в комании Яндекс.

Задание.

Даны строка.

Нужно удалить из строки повторяющиеся пробелы.

Пример 1.

Входные данные: s = “a b c d f “

Результат: s = “a b c d f “

Пример 2.

Входные данные: s = “ a b “

Результат: s = “ a b “

Решение.

void normalize(string &s)
{
    int n = s.length(), i = 0, k = 0;

    for(; i < n; i++) {
        if(s[i] != ' ' || i == 0 || s[i-1] != ' ') {
            s[k++] = s[i];
        }
    }

    if(k > 0) {
        s.resize(k);
    }
}