#include <string> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param tokens string字符串vector * @return int整型 */ int strToInt(string & str) { int sum = 0; bool flag = false; if (str[0] == '-') { flag = true; } for (int i = 0; i < str.size(); i++) { if (str[i] == '-' || str[i] == '+') continue; sum *= 10; sum += (str[i]-'0'); } return flag ? -sum: sum; } int opet(int a, int b, string& op) { if (op == "+") { return a + b; } else if (op == "-") { return a - b; } else if (op == "*") { return a * b; } else if (op == "/") { return a / b; } return 0; } int calculatePostfix(vector<string>& tokens) { // write code here stack<int> stk; int a, b; for (int i = 0; i < tokens.size(); i++) { if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") { b = stk.top(); stk.pop(); a = stk.top(); stk.pop(); stk.push(opet(a, b, tokens[i])); } else { stk.push(strToInt(tokens[i])); } } return stk.top(); } };