leetcode 日经贴,Cpp code -Evaluate Reverse Polish Notation

来源:互联网 发布:剑网3英气军娘捏脸数据 编辑:程序博客网 时间:2024/06/04 08:37

Evaluate Reverse Polish Notation

class Solution {public:    int a2i(const string &s) {        int n = 0, neg = 1;        for (int i = 0; i < s.length(); ++i) {            if (s[i] == '-' && i == 0) {                neg = -1;            } else {                n = n * 10 + int(s[i] - '0');            }        }        return neg * n;    }    int evalRPN(vector<string>& tokens) {        stack<int> st;        for (int i = 0; i < tokens.size(); ++i) {            if (tokens[i].length() > 1 || (tokens[i][0] >= '0' && tokens[i][0] <= '9')) {                st.push(a2i(tokens[i]));            } else {                int b = st.top();                st.pop();                int a = st.top();                st.pop();                int c = 0;                if (tokens[i] == "+") {                    c = a + b;                } else if (tokens[i] == "-") {                    c = a - b;                } else if (tokens[i] == "*") {                    c = a * b;                } else if (tokens[i] == "/") {                    c = a / b;                }                st.push(c);            }        }        return st.top();    }};


0 0
原创粉丝点击