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

150. Evaluate Reverse Polish Notation

2017-07-12 10:54 393 查看
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) {
if(tokens.empty()) return 0;
stack<int> st;
for(string s:tokens){
if(s=="+"){
int first=st.top();
st.pop();
int second=st.top();
st.pop();
st.push(second+first);
}
else if(s=="-"){
int first=st.top();
st.pop();
int second=st.top();
st.pop();
st.push(second-first);

}
else if(s=="*"){
int first=st.top();
st.pop();
int second=st.top();
st.pop();
st.push(second*first);
}
else if(s=="/"){
int first=st.top();
st.pop();
int second=st.top();
st.pop();
st.push(second/first);
}
else{
int num=stoi(s);
st.push(num);
}
}
return st.top();
}
};


二刷时自己做出来的,应该注意

stoi() string to int 就不需要像atoi那样 还需要s.c_str()

stol()是转成long型的。

比较方便

还有对称的to_string();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: