AA7

Задача: В заданной строке вставить перед каждым символом «-» символ «+».

Решение: В цикле просматриваем строку x, если находим символ «-», то увеличиваем счетчик. Создаем строку длинной старой строки плюс счетчик. Во втором цикле, если символ не равен «-», то записываем его в новую строку, иначе вставляем «+», а после него «-».

Код:

Тесты:

Строка Результат

ef34_ve-ev-++vev)-

ef34_ve+-ev+-++vev)+-

3-5=8-10+0

3+-5=8+-10+0

Related Images:

3 thoughts on “AA7

  1. Операция += в большинстве реализаций класса string практически всегда приводит к копированию строки на новое место. Т.е. поместив += в цикл Вы дабились квадратичной сложности алгоритма. Правильнее было бы вычислить длину результирующей строки в одном цикле, зарезервировать необходимое место в памяти, скопировать нужные элементы во втором цикле.
    Засчитал, но оценка сильно снижена.

    • Понял, исправил.

  2. Учёл. Осталось небольшое стилистическое замечание. Приведенный ниже фрагмент Вашего кода излишне усложнён. Нет необходимости вставлять ‘-‘ отдельной строкой — он такой же s[i], как и остальные символы.

Добавить комментарий