题目

思路
这道题相对来说是属于比较简单类型的了,思路也很简单,就是设置一个栈,然后遇到操作数就做压栈操作,遇到操作符就做出栈操作,然后再将结果压入栈中。
说一下这道题一些知识点吧:
- 将string转换为int:使用函数atoi
- switch表达式中后面只能是整型或者字符型
代码如下:
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack<int> t;
int result = 0;
int i, j;
for (auto& s : tokens) {
if (s == "+" ||s=="-"||s=="*"||s=="/") {
i = t.top();
t.pop();
j = t.top();
t.pop();
if (s == "+")
result = i + j;
else if (s == "-")
result = j - i;
else if (s == "*")
result = i * j;
else
result = j / i;
t.push(result);
}
else {
t.push(atoi(s.c_str()));
}
}
return t.top();
}
};
总结
这是一道典型的利用栈解决问题的题目,没什么太多的技巧,单纯的利用栈知识解题
6333

被折叠的 条评论
为什么被折叠?



