class Solution {
public:
int calculate(string s) {
stack<int> opt,ret;
int result,nums,flag;
result=nums=0;
flag=1;
for(int i=0;i<s.size();i++)
{
char c=s[i];
if(c>='0'&&c<='9')
{
nums=nums*10+int(c-'0');
}
else if(c=='+')
{
result+=nums*flag;
nums=0;
flag=1;
}
else if(c=='-')
{
result+=nums*flag;
nums=0;
flag=-1;
}
else if(c=='(')
{
ret.push(result);
opt.push(flag);
result=0;
nums=0;
flag=1;
}
else if(c==')'&&opt.size())
{
result+=nums*flag;
result=result*opt.top()+ret.top();
nums=0;
opt.pop();
ret.pop();
}
}
result+=nums*flag;
return result;
}
};
224. Basic Calculator
最新推荐文章于 2022-02-10 02:02:39 发布