现在的位置: 首页 > 综合 > 正文

Evaluate Reverse Polish Notation

2018年04月29日 ⁄ 综合 ⁄ 共 567字 ⁄ 字号 评论关闭
stack<int> st;

class Solution {
public:
    int evalRPN(vector<string> &tokens) 
	{
		for(int i = 0; i != tokens.size(); ++i)
		{
			if(tokens[i][0] >= '0' && tokens[i][0] <= '9' || tokens[i][1] >= '0' && tokens[i][1] <= '9')
			{
				st.push(atoi(tokens[i].c_str()));
			}
			else
			{
				if(tokens[i] == "+")
				{
					int a, b;
					b = st.top(); st.pop();
					a = st.top(); st.pop();
					st.push(a + b);
				}
				else if(tokens[i] == "-")
				{
					int a, b;
					b = st.top(); st.pop();
					a = st.top(); st.pop();
					st.push(a - b);
				}
				else if(tokens[i] == "*")
				{
					int a, b;
					b = st.top(); st.pop();
					a = st.top(); st.pop();
					st.push(a * b);
				}
				if(tokens[i] == "/")
				{
					int a, b;
					b = st.top(); st.pop();
					a = st.top(); st.pop();
					st.push(a / b);
				}
			}
		}	
		return st.top();   
    }
};

【上篇】
【下篇】

抱歉!评论已关闭.