241. 为运算表达式设计优先级
1 class Solution 2 { 3 public: 4 vector<int> diffWaysToCompute(string input) 5 { 6 vector<int> res; 7 for(int i=0; i<input.size(); i++) 8 { 9 if(input[i] == '+' || input[i] == '-' || input[i] == '*') 10 { 11 vector<int> left = diffWaysToCompute(input.substr(0, i)); 12 vector<int> right = diffWaysToCompute(input.substr(i+1)); 13 for(int j=0; j<left.size(); j++) 14 { 15 for(int k=0; k<right.size(); k++) 16 { 17 if(input[i] == '+') 18 res.push_back(left[j] + right[k]); 19 else if(input[i] == '-') 20 res.push_back(left[j] - right[k]); 21 else 22 res.push_back(left[j] * right[k]); 23 } 24 } 25 } 26 } 27 if(res.empty()) res.push_back(stoi(input)); 28 return res; 29 } 30 };
Mamba never out

浙公网安备 33010602011771号