Leetcode: Day 130, #282 #286 Expression Add Operators, Walls and Gates



Leetcode: Day 130, #282 #286 Expression Add Operators, Walls and Gates

Day 130, #282 #286 Expression Add Operators, Walls and Gates Expression Add Operators 0-9 + ,  -  between the digits so they evaluate to the target value. Examples:  --------------------------------------------------------------------------- 如果遇到"*",则返回之前的操作(因为之前的运算符和值都已经存好) 1 + 2 * 3,之前 1 + 2已经算出为3,之前的运算符为+,值为2。然后此时 总值- 2 + 2 * 3 cur为当前的总值,op为之前运算符,val为上一步计算的值 class Solution { public: int target; void dfs(vector &rt,string num,int index,string sofar,long cur,string op,long val) { if (index == num.length() && target == cur) { rt.push_back(sofar); } for (int i = index; i < num.length(); i++) { string s = num.substr(index,i + 1 - index); if (s != to_string(stol(s))) continue; int now = stol(s); dfs(rt,num,i + 1,sofar + "+" + s,cur + now,"+",now); dfs(rt,num,i + 1,sofar + "-" + s,cur - now,"-",now); if (op == "-") { dfs(rt,num,i + 1,sofar + "*" + s,cur + val - val * now,op,val * now); }else if (op == "+") { dfs(rt,num,i + 1,sofar + "*" + s,cur - val + val * now,op,val * now);

Read full article from Leetcode: Day 130, #282 #286 Expression Add Operators, Walls and Gates


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