Basic Calculator 发表于 2017-06-03 | 分类于 算法 Basic Calculator题目描述: 具体描述可以看LeetCode227 解题思路: 代码如下:12345678910111213141516171819202122232425262728293031323334353637class Solution {public: int calculate(string s) { stack<int> stk; char sign = '+'; int tmp = 0; int res = 0; for (int i = 0; i < s.size(); i++){ if (isdigit(s[i])) tmp = tmp * 10 + s[i] - '0'; if (!isdigit(s[i]) && !isspace(s[i]) || i == s.size() - 1){ if (sign == '+') stk.push(tmp); else if (sign == '-') stk.push(-tmp); else{ int num; if (sign == '*') num = stk.top() * tmp; else num = stk.top() / tmp; stk.pop(); stk.push(num); } sign = s[i]; tmp = 0; } } while(!stk.empty()){ res += stk.top(); stk.pop(); } return res; }};