#include <stack> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 给定一个后缀表达式,返回它的结果 * @param str string字符串 * @return long长整型 */ long long legalExp(string str) { // write code here int n = str.length(); long long temp = 0; stack<long long> stack; for(int i = 0; i < n; i++) { if(str[i] >= '0' && str[i] <= '9') { temp = temp * 10 + (str[i] - '0'); } else if(str[i] == '#') { stack.push(temp); temp = 0; } else { long long num2 = stack.top(); stack.pop(); long long num1 = stack.top(); stack.pop(); if(str[i] == '+') { stack.push(num1 + num2); } else if(str[i] == '-') { stack.push(num1 - num2); } else if (str[i] == '*') { stack.push(num1 * num2); } } } return stack.top(); } };