简单题,直接用栈搞定
class Solution {public: int evalRPN(vector<string>& tokens) { stack<int>st; for(int i = 0; i < tokens.size(); ++ i){ if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/"){ int a, b, c; a = st.top(); st.pop(); b = st.top(); st.pop(); if(tokens[i] == "+") c = b + a; else if(tokens[i] == "-") c = b - a; else if(tokens[i] == "*") c = b * a; else c = b / a; st.push(c); } else{ int a = 0; int f = 1; int j = 0; string t = tokens[i]; if(t[0] == '-'){ f = -1; j = 1; } for(; j < t.length(); ++ j){ a = a * 10 + t[j] - '0'; } st.push(a * f); } } return st.top(); }};新闻热点
疑难解答