栈与队列:逆波兰表达式
思路:利用stringstream将字符串转化为数字,将计算结果入栈,注意:
result = num2 / num1;
result = num2 - num1
num2与num1的顺序
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> s;
int size = tokens.size();
int result = 0;
for(int i = 0; i < size; i++)
{
if(tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "/" || tokens[i] == "*")
{
int num1 = s.top();
s.pop();
int num2 = s.top();
s.pop();
if(tokens[i] == "+" )
{
result = num1 + num2;
}
if(tokens[i] == "-")
{
result = num2 - num1;
}
if(tokens[i] == "/")
{
result = num2 / num1;
}
if(tokens[i] == "*")
{
result = num1 * num2;
}
s.push(result);
}
else
{
stringstream ss;
int tmp = 0;
ss << tokens[i];
ss >> tmp;
ss.clear();
s.push(tmp);
}
}
return s.top();
}
};