leetcode 每日一题 224. 基本计算器
输入:
"(1+(4+5+2)-3)+(6+8)"
输出:
23
题解:
class Solution {
public:
int calculate(string s) {
stack<int> stk;
int sum=0;
int sgin=1;
int i=0;
stk.push(1);
int len=s.length();
while(i<len){
if(s[i]==' '){
i++;
}
else if(s[i]=='+'){
sgin=stk.top();
i++;
}
else if(s[i]=='-'){
sgin=-stk.top();
i++;
}
else if(s[i]=='('){
stk.push(sgin);
i++;
}
else if(s[i]==')'){
stk.pop();
i++;
}
else{
long num=0;
while(i<len&&s[i]<='9'&&s[i]>='0'){
num=num*10+s[i]-'0';
i++;
}
sum+=num*sgin;
}
}
return sum;
}
};