标签:style blog http ar io color os sp for
逆波兰表示法,在维基百科here
一不小心就看到了维基上有说用栈处理。然后就用栈处理了。
需要注意的是,操作数前后不要弄错,stoi可以调用。它应该是在stdlib.h的头文件里,不过我在codeblock上试了不行。
class Solution { public: int evalRPN(vector<string> &tokens) { int size = tokens.size(); if (size == 0) return 0; stack<int> sta; for (int i = 0; i < size; i++) { if (isdigit(tokens[i][0]) || tokens[i].size() > 1) sta.push(stoi(tokens[i])); else { int op1 = sta.top(); sta.pop(); int op2 = sta.top(); sta.pop(); switch(tokens[i][0]) { case ‘+‘: sta.push(op1 + op2); break; case ‘-‘: sta.push(op2 - op1); break; case ‘*‘: sta.push(op1 * op2); break; case ‘/‘: sta.push(op2 / op1); break; } } } return sta.top(); } };
如果自己实现stoi的话:
int stoi150(string s) { int flag = 1; if (s[0] == ‘-‘) { flag = -1; s = s.substr(1); } else if (s[0] == ‘+‘) { s = s.substr(1); } int size = s.size(), ans = 0; for (int i = 0; i < size; i++) { ans = 10 * ans + (s[i] - ‘0‘); } return flag * ans; }
leetcode[150] Evaluate Reverse Polish Notation
标签:style blog http ar io color os sp for
原文地址:http://www.cnblogs.com/higerzhang/p/4170704.html