`
class Solution {
public:
int evalRPN(vector<string>& tokens) {
stack <int> st;
for(int i=0;i<tokens.size();i++){
string s = tokens[i];
if(isdigit(s[0]))
st.push(stoi(s));
else{
int top =st.top();
st.pop();
int second = st.top();
----------> st.pop(); <-----------
switch(s[0]){
case '/':
second /= top;
break;
case '*':
second *= top;
break;
case '+':
second += top;
break;
case '-':
second -= top;
break;
default:
break;
}
st.push(second);
}
}
return st.top();
}
};
此代码用于解决 leetcode 问题 150. Evaluate Reverse Polish Notation。 该代码在某些情况下运行良好,但并非所有情况都适用,因此我在代码中添加了我指向的 st.pop() 并且我收到此运行时错误:
我不完全理解错误。 **我试过**检查堆栈是否为空,但没有用。 无论如何我知道如何解决 leetcode 问题并且逻辑是正确的......我有兴趣了解这段代码有什么问题
如果我不清楚,请不要判断这是我第一次在这里提问