题目考察的知识点:栈是一种特殊的线性表,是限定仅在一端(通常是表尾),进行插入和删除操作的线性表。又称为后进先出(Last In First Out)的线性表,简称LIFO结构。
题目解答方法的文字分析:将数组中的数据入栈,如果遇到符号,则出数据并进行相加,再入数据,直到遍历完。
本题解析所用的编程语言:c++
int calculatePostfix(const vector<string>& tokens)
{
// write code here
stack<int> st;
for (auto& str : tokens)
{
if (str == "+" || str == "-" || str == "*" || str == "/")
{
int right = st.top();
st.pop();
int left = st.top();
st.pop();
switch (str[0])
{
case '+':
st.push(left + right);
break;
case '-':
st.push(left - right);
break;
case '*':
st.push(left * right);
break;
case '/':
st.push(left / right);
break;
}
}
else
{
st.push(stoi(str));
}
}
return st.top();
}

京公网安备 11010502036488号