17 - Letter Combinations of a Phone Number

 JAVA

  • class Solution {
        public List<String> letterCombinations(String digits) {
            List<String> ans = new ArrayList<>();
            if (digits.length() == 0) {
                return ans;
            }
            ans.add("");
            String[] d = new String[] {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
            for (char i : digits.toCharArray()) {
                String s = d[i - '2'];
                List<String> t = new ArrayList<>();
                for (String a : ans) {
                    for (String b : s.split("")) {
                        t.add(a + b);
                    }
                }
                ans = t;
            }
            return ans;
        }
    }
C++
  • class Solution {
    public:
        vector<string> letterCombinations(string digits) {
            if (digits.empty()) {
                return {};
            }
            vector<string> d = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
            vector<string> ans = {""};
            for (auto& i : digits) {
                string s = d[i - '2'];
                vector<string> t;
                for (auto& a : ans) {
                    for (auto& b : s) {
                        t.push_back(a + b);
                    }
                }
                ans = move(t);
            }
            return ans;
        }
    };

Comments