参考代码:
class Solution {
public:
int calculate(string s) {
vector<int> st;
char op='+';
int i=0;
while(i<s.size())
{
if(s[i]==' ')
{
i++;
}
else if(s[i]>='0'&&s[i]<='9')
{
int tmp=0;
while(i<s.size()&&s[i]>='0'&&s[i]<='9')
{
tmp=tmp*10+(s[i]-'0');
i++;
}
if(op=='+')
{
st.push_back(tmp);
}
else if(op=='-')
{
st.push_back(-tmp);
}
else if(op=='*')
{
st.back()*=tmp;
}
else if(op=='/')
{
if(tmp)
{
st.back()/=tmp;
}
}
}
else
{
op=s[i];
i++;
}
}
int sum=0;
for(const auto& e:st)
{
sum+=e;
}
return sum;
}
};