当前位置:网站首页>Reverse Polish notation
Reverse Polish notation
2022-07-05 13:02:00 【accumulate steadily ض】
The inverse Polish expression of stack application
What is the inverse Polish expression ??--> Source force buckle 150. Evaluate the inverse Polish expression
Reverse Polish notation :
The inverse Polish expression is a suffix expression , The so-called suffix means that the operator is written after .
The usual formula is a infix expression , Such as ( 1 + 2 ) * ( 3 + 4 ) .
The inverse Polish expression of the formula is written as ( ( 1 2 + ) ( 3 4 + ) * ) .
The inverse Polish expression has two main advantages :There is no ambiguity in the expression after removing the brackets , Even if the above formula is written as 1 2 + 3 4 + * You can also calculate the correct result according to the order .
It is suitable for stack operation : When it comes to numbers, it's on the stack ; When you encounter an operator, you take out two numbers at the top of the stack to calculate , And push the results into the stack
That is to say, we usually write correctly Addition, subtraction, multiplication and division of numbers , It's all like this .. For example : ( 1 + 2 ) * ( 3 + 4 )--> Infix expression , And we can make the computer understand ??-> This introduces today's inverse Polish expression, that is, the suffix expression , Let's turn infix expression into suffix expression .
for example :1+2*3+(4*2+5)*6

- Add curly braces to all operations
- Move the operator outside the corresponding bracket
- Remove all parentheses
Well, we get a suffix expression --> That is, the calculation that the computer can read
How does the computer calculate the result through such a suffix expression ???
That is our magical data structure --> Stack

- When encountering numbers, it will be added to the stack
- When you encounter an operator, you will get two numbers
- The first output is placed on the right side of the operator , The second time out is to the left of the release operator
- After the calculation, continue to put it on the stack
- The final stack top element is the result of the final expression calculation
Code implementation :
class Solution {
public int evalRPN(String[] tokens) {
// Ideas : When it comes to numbers, put them on the stack , If you encounter a number symbol, you will give two numbers to calculate
// Continue to stack the calculation results , Continue to traverse the end of the string
Stack<Integer> stack = new Stack<>();
for(int i =0;i<tokens.length;++i){
String str = tokens[i];
if(!isNumCharacter(str)){// Judge whether it is a symbol
// If it's a number, put it on the stack
int num = Integer.parseInt(str);
stack.push(num);
}else{
// If it's a character, pop the stack , Pop up two numbers
int num2 = stack.pop();
int num1 = stack.pop();
switch(str){
case "+":
stack.push(num1+num2);
break;
case "-":
stack.push(num1-num2);
break;
case "*":
stack.push(num1*num2);
break;
case "/":
stack.push(num1/num2);
break;
}
}
}
return stack.peek();
}
// Used to determine whether this string is a character
public boolean isNumCharacter(String s){
if(s.equals("+")||s.equals("*")||
s.equals("-")||s.equals("/")){
return true;
}
return false;
}
}边栏推荐
- What if wechat is mistakenly sealed? Explain the underlying logic of wechat seal in detail
- 155. 最小栈
- Get to know linkerd project for the first time
- It's too convenient. You can complete the code release and approval by nailing it!
- Transactions on December 23, 2021
- Taobao short video, why the worse the effect
- HiEngine:可媲美本地的云原生内存数据库引擎
- NFT: how to make money with unique assets?
- Research: data security tools cannot resist blackmail software in 60% of cases
- 事务的基本特性和隔离级别
猜你喜欢

Four common problems of e-commerce sellers' refund and cash return, with solutions

Transactions from January 14 to 19, 2022

2021.12.16-2021.12.20 empty four hand transaction records

2021-12-22 transaction record

SAP UI5 视图里的 OverflowToolbar 控件

CVPR 2022 | single step 3D target recognizer based on sparse transformer

太方便了,钉钉上就可完成代码发布审批啦!

leetcode:221. 最大正方形【dp状态转移的精髓】

SAP SEGW 事物码里的导航属性(Navigation Property) 和 EntitySet 使用方法

Hiengine: comparable to the local cloud native memory database engine
随机推荐
2021.12.16-2021.12.20 empty four hand transaction records
你的下一台电脑何必是电脑,探索不一样的远程操作
关于 SAP UI5 getSAPLogonLanguage is not a function 的错误消息以及 API 版本的讨论
Concurrent performance test of SAP Spartacus with JMeter
Wechat enterprise payment to change access, open quickly
Notes for preparation of information system project manager --- information knowledge
946. 验证栈序列
Yyds dry goods inventory # solve the real problem of famous enterprises: move the round table
A deep long article on the simplification and acceleration of join operation
Leetcode20. Valid parentheses
事务的基本特性和隔离级别
MySQL 巨坑:update 更新慎用影响行数做判断!!!
Association modeling method in SAP segw transaction code
Detailed explanation of navigation component of openharmony application development
Hundred days to complete the open source task of the domestic database opengauss -- openguass minimalist version 3.0.0 installation tutorial
超高效!Swagger-Yapi的秘密
Lepton 无损压缩原理及性能分析
CVPR 2022 | single step 3D target recognizer based on sparse transformer
Distance measuring sensor chip 4530a used in home intelligent lighting
我在滴滴做开源