给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。
整数除法仅保留整数部分。
示例 1:
输入:s = "3+2*2"
输出:7
示例 2:
输入:s = " 3/2 "
输出:1
示例 3:
输入:s = " 3+5 / 2 "
输出:5
代码:
class Solution {
public:
int calculate(string s) {
vector<int>a;
int num=0;
char c='+';
int n=s.size();
for(int i=0;i<n;i++){
if(isdigit(s[i])){
num=num*10+int(s[i]-'0');
}
if(!isdigit(s[i])&&s[i]!=' '||i==n-1){
switch(c){
case'+':a.push_back(num);break;
case'-':a.push_back(-num);break;
case'*':a.back()*=num;break;
case'/':a.back()/=num;break;
}
c=s[i];
num=0;
}
}
return accumulate(a.begin(),a.end(),0);
}
};