ОПЗ (обратная польская запись)

  • Автор темы Автор темы Student_TRTU
  • Дата начала Дата начала
S

Student_TRTU

Здравствуйте вот нашел в нете алгоритм ОПЗ и захотелось его освоить. Но не могу понять как можно сделать чтобы по данной ОПЗ решать примеры.
Например:
Нам в дана такая строчка 3-4*(1+2) после превода получилась вот такая запись 3412+*- как теперь из этой записи символы перевести в числа и операции и решить этот пример чтобы в итоге получилось
-9.
 
Очень просто. идешь по строчке слева направо.
Если число - ложишь его в стэк.
Если операция - применяешь ее к 2-м верхним элементам стека, результат помещаешь обратно в стек
Код:
Шаг Элемент Стэк
1	3	  3
2	4	  3 4
3	1	  3 4 1
4	2	  3 4 1 2
5	+	  3 4 3(1+2)
6	*	  3 12(4*3)
7	-	  -9(3-12)
 
И не понимай слово запись буквально - конечно из строки "3412+*-" никак не выделишь числа - 4 числа там лежат или только 1? Польская запись определяет порядок значений, а не форматирование в строке. Если тебе надо именно в строку представить результат, разделяй значения хотя бы пробелом - чтобы можно было потом распарсить ее.
 
Большое спасибо!!! Все у меня получилось.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab