227. Basic Calculator II

陆承宣
2023-12-01

*

class Solution {
public:
    int calculate(string s) {
        stack<int> nums;
        int temp;
        char flag='+';
        for(int i=0;i<s.size();i++)
        {
            char c=s[i];
            if(c>='0'&&c<='9')
                temp=temp*10+int(c-'0');
            if((!(c>='0'&&c<='9')&&c!=' ')||i==(s.size()-1))
            {
                if(flag=='-')
                    nums.push(-1*temp);
                else if(flag=='+')
                    nums.push(temp);
                else if(flag=='*')
                {
                    temp=temp*nums.top();
                    nums.pop();
                    nums.push(temp);
                }
                else 
                {
                    temp=nums.top()/temp;
                    nums.pop();
                    nums.push(temp);
                }
                flag=s[i];
                temp=0;
            }
        }
        int ret=0;
        while(!nums.empty())
        {
            ret+=nums.top();
            nums.pop();
        }
        return ret;
    }
};

*

 类似资料:

相关阅读

相关文章

相关问答