Leetcode 282, Expression Add Operators
来源:互联网 发布:网络监控服务器搭建 编辑:程序博客网 时间:2024/05/15 12:28
public List<String> addOperators(String num, int target) { List<String> res = new ArrayList<String>(); helper(res, "", target, num, 0, 0); return res; } private void helper(List<String> res, String tmp, int target, String num, long currRes, long prevNum){ // 如果计算结果等于目标值,且所有数都用完了,则是有效结果 if(currRes == target && num.length() == 0){ String exp = new String(tmp); res.add(exp); return; } // 搜索所有可能的拆分情况 for(int i = 1; i <= num.length(); i++){ String currStr = num.substring(0, i); // 对于前导为0的数予以排除 if(currStr.length() > 1 && currStr.charAt(0) == '0'){ // 这里是return不是continue return; } // 得到当前截出的数 long currNum = Long.parseLong(currStr); // 去掉当前的数,得到下一轮搜索用的字符串 String next = num.substring(i); // 如果不是第一个字母时,可以加运算符,否则只加数字 if(tmp.length() != 0){ // 乘法 helper(res, tmp+"*"+currNum, target, next, (currRes - prevNum) + prevNum * currNum, prevNum * currNum); // 加法 helper(res, tmp+"+"+currNum, target, next, currRes + currNum, currNum); // 减法 helper(res, tmp+"-"+currNum, target, next, currRes - currNum, -currNum); } else { // 第一个数 helper(res, currStr, target, next, currNum, currNum); } } }
Refer: https://segmentfault.com/a/1190000003797204
0 0
- [leetcode 282]Expression Add Operators
- leetcode(282): Expression Add Operators
- Leetcode 282, Expression Add Operators
- LeetCode:Expression Add Operators
- 【LeetCode】Expression Add Operators
- Expression Add Operators -- leetcode
- Leetcode -- Expression Add Operators
- LeetCode -- Expression Add Operators
- LeetCode Expression Add Operators
- leetcode:Expression Add Operators
- 《leetcode》:Expression Add Operators
- [leetCode] Expression Add Operators
- [LeetCode]Expression Add Operators
- [LeetCode] Expression Add Operators
- 【LeetCode】Expression Add Operators
- Expression Add Operators(leetcode)
- Leetcode | Expression Add Operators
- LeetCode 282 Expression Add Operators 题解
- 【Android 基础】RecyclerView 概述以及使用步骤
- 58-System V 消息队列
- 微信小程序使用font-awesome图标库
- poj_2828 Buy Tickets(线段树)
- Program "g++" not found in PATH
- Leetcode 282, Expression Add Operators
- Java考试题之三
- JPEG系列二 JPEG文件中的EXIF(下)
- jQuery遮罩效果
- JavaWeb总结二十七、jsp简单标签开发案例和打包
- 分词效果的评测算法(原创)
- React+Webpack+ES6从环境搭建到HelloWorld
- 虚拟机不显示主机共享的文件夹?一条命令解决
- JavaWeb总结二十八、JSTL标签库之核心标签