题解 | #牛的表达式计算器#
牛的表达式计算器
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();
}
};
