Techinpad: [LeetCode] Expression Add Operators



Techinpad: [LeetCode] Expression Add Operators

0-9 + ,  -  between the digits so they evaluate to the target value. Examples:  "123", 6 -> ["1+2+3", "1*2*3"] "232", 8 -> ["2*3+2", "2+3*2"] "00", 0 -> ["0+0", "0-0", "0*0"] "3456237490", 9191 -> [] class Solution { void helper(vector& res, string &nums, string expr, long prev, long curVal, int target) { if (nums.length() == 0 && curVal == target) { res.push_back(expr); return; } for (int i = 1; i<=nums.length(); i++) { string firstNum = nums.substr(0, i); if(i > 1 && firstNum[0] == '0') { return; } long first = stol(firstNum); string secondNum = nums.substr(i); if (expr.length() == 0) { helper(res, secondNum, firstNum, first, first, target); continue; } helper(res, secondNum, expr+"+"+firstNum, first, curVal + first, target); helper(res, secondNum, expr+"-"+firstNum, -first, curVal - first, target); helper(res, secondNum, expr+"*"+firstNum, prev*first, curVal-prev+prev*first, target); } } public: vector addOperators(string num, int target) { vector res;

Read full article from Techinpad: [LeetCode] Expression Add Operators


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts