题目考察的知识点:栈是一种特殊的线性表,是限定仅在一端(通常是表尾),进行插入和删除操作的线性表。又称为后进先出(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(); }