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
Post a Comment