*LeetCode-Different Ways to Add Parentheses
来源:互联网 发布:成功的网络大电影 编辑:程序博客网 时间:2024/06/06 18:55
不用考虑括号不括号的问题 想成了stack就错了 应该用分治递归
每次遇到一个运算符就把string两边分开分别递归计算 得到两个list 然后这两个list里面的结果根据这个符号排列组合计算
最后corner case是不存在括号 即list为空 直接把string add进去
public class Solution { public List<Integer> diffWaysToCompute(String input) { List<Integer> list = new ArrayList<Integer> (); if ( input == null || input.length() == 0 ) return list; for ( int i = 0; i < input.length(); i ++ ){ if ( input.charAt(i) == '+' || input.charAt(i) == '-' || input.charAt(i) == '*' ){ List<Integer> l1 = diffWaysToCompute( input.substring( 0, i ) ); List<Integer> l2 = diffWaysToCompute( input.substring( i + 1 ) ); for ( int num1 : l1 ){ for ( int num2 : l2 ){ int res = 0; if ( input.charAt(i) == '+' ) res = num1 + num2; else if ( input.charAt(i) == '-') res = num1 - num2; else res = num1 * num2; list.add ( res ); } } } } if ( list.size () == 0 ) list.add ( Integer.parseInt(input) ); return list; }}
0 0
- leetcode 241 Different Ways to Add Parentheses
- Leetcode 241- Different Ways to Add Parentheses
- Leetcode #241 Different Ways to Add Parentheses
- LeetCode - Different Ways to Add Parentheses
- [leetCode] Different Ways to Add Parentheses
- [leetcode 241]Different Ways to Add Parentheses
- Leetcode|Different Ways to Add Parentheses
- [leetcode][dfs] Different Ways to Add Parentheses
- LeetCode Different Ways to Add Parentheses
- [LeetCode] Different Ways to Add Parentheses
- [leetcode] 241.Different Ways to Add Parentheses
- [leetcode]Different Ways to Add Parentheses
- LeetCode(241)Different Ways to Add Parentheses
- [LeetCode]Different Ways to Add Parentheses
- leetcode 241: Different Ways to Add Parentheses
- Leetcode: Different Ways to Add Parentheses
- [LeetCode 241] Different Ways to Add Parentheses
- LeetCode -- Different Ways to Add Parentheses
- 多项式输出-Java
- 如何创建一个安卓Android应用
- c++ map的基本用法
- 黑马程序员——包,内部类总结
- Spark修炼之道(基础篇)——Linux大数据开发基础:第十节:Shell编程入门(二)
- *LeetCode-Different Ways to Add Parentheses
- java第一次上机实验和C++之间的比对
- OS X中app store正在下载的文件在哪里
- 黑马程序员——Java语言:网络编程
- C#中的集合--Collection
- Talk Is Cheap,
- VS2012+WDK8.0环境配置
- 《C++primer(第五版)》学习之路-第十五章:面向对象程序设计
- linux 下文件的压缩与解压(1) -- tar