Different Ways to Add Parentheses

    xiaoxiao2021-03-25  81

    这是一道使用分治算法去做的题目。遍历string,当遇到+-*时,就停下来,讲字符串分为两部分,然后再运用递归去继续算下去。将计算结果放在vector里面。 (不过不是很懂的是为什么result为空的时候,需要把最后一步那样的代码,这一步是百度看到的,不是很懂,但是加这一步就AC了??) 代码如下:

    class Solution { public: vector<int> diffWaysToCompute(string input) { //想问一下能确保都是只有一位的数相加吗 vector<int>result; for(int i=0;i<input.size();i++){ if(input[i]=='+'||input[i]=='-'||input[i]=='*'){ vector<int>left=diffWaysToCompute(input.substr(0,i)); vector<int>right=diffWaysToCompute(input.substr(i+1)); for(int j=0;j<left.size();j++){ for(int k=0;k<right.size();k++){ if(input[i]=='+'){ result.push_back(left[j]+right[k]); } else if(input[i]=='-'){ result.push_back(left[j]-right[k]); } else{ result.push_back(left[j]*right[k]); } } } } } if(result.empty()){ result.push_back(atoi(input.c_str())); } return result; } };
    转载请注明原文地址: https://ju.6miu.com/read-33883.html

    最新回复(0)