力扣227.基本计算器II
-
先算*/
-
让栈里只剩下+
-
最后求和即可
-
-
class Solution { public: int calculate(string s) { vector<int> st; char presign = '+'; int num = 0; int n = s.size(); for(int i=0;i<n;i++) { if(isdigit(s[i])) num = num*10 + (s[i] - '0'); if(!isdigit(s[i]) && s[i] != ' ' || i == n-1) { if(presign == '+') st.push_back(num); else if(presign == '-') st.push_back(-num); else if(presign == '/') st.back() /= num; else st.back() *= num; presign = s[i]; num = 0; } } return accumulate(st.begin(),st.end(),0); } };
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 力扣227.基本计算器II
发表评论 取消回复