您的位置:首页 > 编程语言 > Lua

[leetcode]Evaluate Reverse Polish Notation

2014-05-14 19:29 176 查看


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:

["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9
["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6

class Solution {
public:
int evalRPN(vector<string> &tokens) {
stack<int> si;
int vslen = tokens.size();
int a, b;
for(int i = 0; i < vslen; i++){
if(tokens[i] != "+" && tokens[i] != "-" && tokens[i] != "*" && tokens[i] != "/"){
si.push(atoi(tokens[i].c_str()));
continue;
}
b = si.top();
si.pop();
a = si.top();
si.pop();
if(tokens[i] == "+"){
si.push(a + b);
}else if(tokens[i] == "-"){
si.push(a - b);
}else if(tokens[i] == "*"){
si.push(a * b);
}else if(tokens[i] == "/"){ //默认所有输入是有效的,不包含0
si.push(a / b);
}
}
return si.top();
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: