Different Ways to Add Parentheses(C++为运算表达式设计优先级)

淩亂°似流年 2022-10-16 07:43 217阅读 0赞

(1)分治法

  1. class Solution {
  2. public:
  3. vector<int> diffWaysToCompute(string e) {
  4. vector<int> v1,v2,vec;
  5. int tag=0;
  6. for(int i=0;i<e.length();i++) {
  7. if(e[i]=='+' || e[i]=='-' || e[i]=='*') {
  8. tag=1;
  9. v1=diffWaysToCompute(string(e,0,i));
  10. v2=diffWaysToCompute(string(e,i+1,e.length()-i-1));
  11. for(int j=0;j<v1.size();j++) {
  12. for(int k=0;k<v2.size();k++) {
  13. if(e[i]=='+') vec.push_back(v1[j]+v2[k]);
  14. else if(e[i]=='-') vec.push_back(v1[j]-v2[k]);
  15. else if(e[i]=='*') vec.push_back(v1[j]*v2[k]);
  16. }
  17. }
  18. }
  19. }
  20. if(tag==0) return {stoi(e)};
  21. return vec;
  22. }
  23. };

发表评论

表情:
评论列表 (有 0 条评论,217人围观)

还没有评论,来说两句吧...

相关阅读