diff options
Diffstat (limited to 'works/solutions/leetcode/cpp/17.cpp')
-rw-r--r-- | works/solutions/leetcode/cpp/17.cpp | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/works/solutions/leetcode/cpp/17.cpp b/works/solutions/leetcode/cpp/17.cpp deleted file mode 100644 index 74e33b4..0000000 --- a/works/solutions/leetcode/cpp/17.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include <string>
-#include <vector>
-
-using std::string;
-using std::vector;
-
-vector<char> c_map[9]{
- {'a', 'b', 'c'},
- {'d', 'e', 'f'},
- {'g', 'h', 'i'},
- {'j', 'k', 'l'},
- {'m', 'n', 'o'},
- {'p', 'q', 'r', 's'},
- {'t', 'u', 'v'},
- {'w', 'x', 'y', 'z'}};
-
-void combine(const string::const_iterator ¤t, const string::const_iterator &end, string &head, vector<string> &result)
-{
- const auto &chars = c_map[(*current) - '2'];
-
- if (current == end)
- {
- for (auto c : chars)
- {
- head.push_back(c);
- result.push_back(head);
- head.pop_back();
- }
- return;
- }
-
- for (auto c : chars)
- {
- head.push_back(c);
- combine(current + 1, end, head, result);
- head.pop_back();
- }
-}
-
-class Solution
-{
-public:
- vector<string> letterCombinations(string digits)
- {
- std::vector<string> result;
-
- if (digits.empty())
- return result;
-
- std::string head;
-
- combine(digits.cbegin(), digits.cend() - 1, head, result);
-
- return result;
- }
-};
|