

参考代码:
- class Solution {
- public:
- int calculate(string s) {
- vector<int> st;
- char op='+';
- int i=0;
- while(i
size()) - {
- if(s[i]==' ')
- {
- i++;
- }
- else if(s[i]>='0'&&s[i]<='9')
- {
- int tmp=0;
- while(i
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;
- }
- };