Страницы

Поиск по вопросам

понедельник, 9 марта 2020 г.

Как убрать из математического выражения лишние скобки?

#cpp #алгоритм #очередь


Попалась такая задача: «при помощи очереди изъять лишние скобки из арифметического
выражения». Изначально она показалась очень простой, но на практике вызвала много затруднений.

Добавление @mymedia:

Лишними скобками считаются те, которые можно убрать, сохранив смысл выражения. Например,
(5*7)+3 → 5*7+3, ((a+b)) → a+b.
    


Ответы

Ответ 1



Задача действительно не самая простая и через стек ее не решить. Через стек решается задача определения правильности/неправильности скобочной последовательности. Лишние скобки так не убрать. ВОТ можно почитать про обратную польскую нотацию. Раскладываете выражение, собираете обратно и где надо ставите скобки. Тогда лишних уже не будет. P.S. очередь/стек там используется для сохранения операций.

Комментариев нет:

Отправить комментарий