Different Ways to Add Parentheses
来源:互联网 发布:部落冲突升级兵种数据 编辑:程序博客网 时间:2024/06/03 12:54
题目描述
Given a string of numbers and operators, return all possible results from computing all the different possible ways to group numbers and operators. The valid operators are +, - and *.
思路分析
采用分而治之的思想,将这个看似复杂的问题简单化:从左到右顺序找出’+’,’-’和’*’,当找到一个运算符时就将字符串分成左、右两部分,分别调用diffWaysToCompute函数递归计算所有可能的值,最后利用for循环遍历左、右两部分vector的值进行交叉运算,并将结果放在容器result中;如果没有找到任何运算符,就将字符串转换成int型数字并放在result。
代码实现
class Solution {public: vector<int> diffWaysToCompute(string input) { vector<int> result; for (int s = 0; s < input.length(); s++) { char ch = input.at(s); if (ch == '+' || ch == '-' || ch == '*') { vector<int> left = diffWaysToCompute(input.substr(0, s)); //substr默认从input的第i+1位到input的末尾 vector<int> right = diffWaysToCompute(input.substr(s+1)); for (int i = 0; i < left.size(); i++) { for (int j = 0; j < right.size(); j++) { if (ch == '+') { result.push_back(left[i] + right[j]); } else if (ch == '-') { result.push_back(left[i] - right[j]); } else if (ch == '*') { result.push_back(left[i] * right[j]); } } } } } if (result.size() == 0) { result.push_back(atoi(input.c_str())); } return result; }};
阅读全文
0 0
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- different-ways-to-add-parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- Different Ways to Add Parentheses
- 那些找工作的日子—前端:
- 进程间通信(四)共享内存
- 踏入C语言的大门
- 运维之mysql篇------3. 数据导入导出 、 表记录基本操作 、 查询及匹配条件 、 多表查询
- 基于ubuntu下stm32开发环境搭建(ubuntu+st-link+libopencm3)
- Different Ways to Add Parentheses
- 浏览器兼容
- 使用C++11新特性
- 1018. 锤子剪刀布 (20)——C语言
- C语言的条件编译
- BP与梯度下降的关系
- c语言详解sizeof
- PHP实现页面静态化——全部纯静态化
- 关于IDEA下出现Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile 的解决方法