leetcode 24 Game
2018-03-07 18:52
411 查看
string doubleToString(double num) { stringstream ss; string str; ss << num; ss >> str; return str; } void helper(vector<double>& num, vector<char>& ops, double eps,vector<string>& str,vector<string>& vecRes) { if(num.size() == 1) { if(abs(num[0] - 24) < eps) { vecRes.push_back(str[0]); } } for(unsigned int i = 0; i < num.size(); ++i) { for(unsigned int j = 0; j < num.size(); ++j) { if(i == j) continue; vector<double> temp; vector<string> s; for(unsigned int k = 0; k < num.size(); k++) { if(k != i && k != j) { temp.push_back(num[k]); s.push_back(str[k]); } } for(char ch : ops) { if(((ch == '+') | (ch == '*')) && (i > j)) continue; if((ch == '/') && num[j] < eps) continue; switch(ch) { case '+': temp.push_back(num[i] + num[j]); s.push_back("(" + str[i] + "+" + str[j] + ")"); break; case '-': temp.push_back(num[i] - num[j]); s.push_back("(" + str[i] + "-" + str[j] + ")"); break; case '*': temp.push_back(num[i] * num[j]); s.push_back("(" + str[i] + "*" + str[j] + ")"); break; case '/': temp.push_back(num[i] / num[j]); s.push_back("(" + str[i] + "/" + str[j] + ")"); break; } helper(temp, ops, eps, s, vecRes); temp.pop_back(); s.pop_back(); } } } } int judgePoint24(vector<int>& num, vector<string>& vecRes) { double eps = 0.001; vector<char> ops{ '+', '-', '*', '/' }; vector<double> arr(num.begin(), num.end()); vector<string> str; for(unsigned int i = 0; i < num.size(); i++) { str.push_back(doubleToString(num[i])); } helper(arr, ops, eps, str, vecRes); return vecRes.size(); }
相关文章推荐
- leetcode 679. 24 Game
- [LeetCode] 24 Game 二十四点游戏
- LeetCode 679: 24 Game 解题与思考
- [LeetCode] 679. 24 Game(回溯法)
- LeetCode week 3 : 24 Game
- [LeetCode] 679. 24 Game(回溯法)
- LeetCode679. 24 Game
- leetcode 679. 24 Game 4个数加减乘除得到24 + 24点游戏 + 暴力求解
- [Leetcode] 679. 24 Game 解题报告
- leetcode679:24Game
- 24 game [LeetCode 679]
- Leetcode45 Jump Game II
- Leetcode ump Game II
- Leetcode 292. Nim Game
- [LeetCode294]Flip Game II
- Leetcode 293. Flip Game & 294. Flip Game II
- CodeForces-468A-24 Game
- [LeetCode] Jump Game II
- leetcode:Jump Game II
- LeetCode 289. Game of Life (生命游戏)