题解 | #牛的表达式计算器#
牛的表达式计算器
https://www.nowcoder.com/practice/261e7f01438f414c92f59c0059d3a906
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串vector * @return int整型 */ int calculatePostfix(vector<string>& tokens) { // 用到队列,从左往右,依次入队,遇到运算符,出队两个进行计算,再入队 // 将数组中的数据入栈,如果遇到符号,则出数据并进行相加,再入数据,直到遍历完。 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(); } };