题解 | #后缀表达式求值# 直接用栈操作即可
后缀表达式求值
https://www.nowcoder.com/practice/22f9d7dd89374b6c8289e44237c70447
#include <cctype> #include <string> class Solution { public: /** * * @param tokens string字符串vector * @return int整型 */ bool issymbol(string& str){ if(str=="+"||str=="-"||str=="*"||str=="/"){ return true; } return false; } int calculate(int& num1,int& num2,string s){ if(s=="+"){ return num2+num1; } else if(s=="-"){ return num2-num1; } else if(s=="*"){ return num2*num1; } else{ return num2/num1; } } int evalRPN(vector<string>& tokens) { // write code here stack<int> s; int n=tokens.size(); for(int i=0;i<n;i++){ if(!issymbol(tokens[i])){ int temp=stoi(tokens[i]); s.push(temp); } else{ int num1=s.top(); s.pop(); int num2=s.top(); s.pop(); s.push(calculate(num1,num2,tokens[i])); } } return s.top(); } };