Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int calculate(string s) {
- stack<long long int> myStack;
- char sign = '+';
- long long int res = 0, tmp = 0;
- for(int i = 0; i < s.size(); i++) {
- if(isdigit(s[i]))
- tmp = 10*tmp + s[i]-'0';
- if(!isdigit(s[i]) && !isspace(s[i]) || i == s.size()-1) {
- if(sign == '-')
- myStack.push(-tmp);
- else if(sign == '+')
- myStack.push(tmp);
- else {
- int num;
- if(sign == '*' )
- num = myStack.top()*tmp;
- else
- num = myStack.top()/tmp;
- myStack.pop();
- myStack.push(num);
- }
- sign = s[i];
- tmp = 0;
- }
- }
- while(!myStack.empty()) {
- res += myStack.top();
- myStack.pop();
- }
- return res;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement