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