class Solution {
stack<int>f;
public:
int calculate(string s) {
long num=0;
int res=0;
int sign=1;
for(int i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
num=num*10+s[i]-'0';
if(s[i]=='+')
{
res+=num*sign;
sign=1;
num=0;
}
if(s[i]=='-')
{
res+=num*sign;
sign=-1;
num=0;
}
if(s[i]=='(')
{
f.push(res);
f.push(sign);
res=0;
sign=1;
}
if(s[i]==')')
{
res+=num*sign;
num=0;
res*=f.top();
f.pop();
res+=f.top();
f.pop();
}
}
res+=num*sign;
return res;
}
};
力扣每日一题224 基本计算器
最新推荐文章于 2024-04-21 02:35:31 发布