LeetCode Evaluate Reverse Polish Notation

Evaluate the value of an arithmetic expression in Reverse Polish Notation.

Valid operators are +-*/. Each operand may be an integer or another expression.

Some examples:

这个叫什么来着,好熟悉,逆波兰表达式???这个题目当然是极其简单的

 1 class Solution {
 2 public:
 3     int Opr(int x,int y,string opr){
 4         if(opr=="+"){
 5             return x+y;
 6         }
 7         if(opr=="-"){
 8             return x-y;
 9         }
10         if(opr=="/"){
11             return x/y;
12         }
13         if(opr=="*"){
14             return x*y;
15         }
16     }
17     int evalRPN(vector<string>& tokens) {
18         stack<int>Int;
19         int len=tokens.size();
20         for(int i=0;i<len;i++){
21             if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="/"||tokens[i]=="*"){
22                 int x=Int.top();Int.pop();
23                 int y=Int.top();Int.pop();
24                 Int.push(Opr(y,x,tokens[i]));
25             }else{
26                 Int.push(atoi(tokens[i].c_str()));
27             }
28         }
29         return Int.top();
30     }
31 };

 

posted @ 2018-03-01 20:52  樱花落舞  阅读(188)  评论(0编辑  收藏  举报