Leetcode 150 Evaluate Reverse Polish Notation(栈)

题目连接:Leetcode 150 Evaluate Reverse Polish Notation

解题思路:碰到数字入栈,碰到运算符,推出栈顶两个元素进行相应运算,将结果放回栈中。

class Solution {
	public:
		int evalRPN(vector& tokens) {
			stack nums;
			for (int i = 0; i < tokens.size(); i++) {
				if (tokens[i] == "+" || tokens[i] == "-"
						|| tokens[i] == "/" || tokens[i] == "*") {
					int a = nums.top(); nums.pop();
					int b = nums.top(); nums.pop();
					if (tokens[i] == "+") nums.push(b + a);
					else if(tokens[i] == "-") nums.push(b - a);
					else if (tokens[i] == "*") nums.push(b * a);
					else if (tokens[i] == "/") nums.push(b / a);
				} else {
					nums.push(stoi(tokens[i]));
				}
			}
			return nums.top();
		}
};

你可能感兴趣的:(Leetcode)