LeetCode OJ:Letter Combinations of a Phone Number
2014-01-30 23:01
441 查看
Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.
Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
递归:
class Solution { vector<string> result; string str; public: void dfs(int k,string &digits,map<int,string> &mp){ if(k==digits.size()){ result.push_back(str); return; } for(int i=0;i<mp[digits[k]-'0'].size();i++){ str+=mp[digits[k]-'0'][i]; dfs(k+1,digits,mp); str.resize(k); } } vector<string> letterCombinations(string digits) { map<int,string> mp; mp[2]="abc";mp[3]="def"; mp[4]="ghi";mp[5]="jkl";mp[6]="mno"; mp[7]="pqrs";mp[8]="tuv";mp[9]="wxyz"; dfs(0,digits,mp); return result; } };
迭代:
class Solution { public: const vector<string> keyboard{" ","","abc","def", "ghi","jkl","mno","pqrs","tuv","wxyz"}; vector<string> letterCombinations(string digits) { vector<string> result(1,""); for(auto d : digits){ const size_t n=result.size(); const size_t m=keyboard[d-'0'].size(); result.resize(n*m); for(size_t i=0;i<m;++i) copy(result.begin(),result.begin()+n,result.begin()+n*i); for(size_t i=0;i<m;++i){ auto begin=result.begin(); for_each(begin+n*i,begin+n*(i+1),[&](string &s){ s+=keyboard[d-'0'][i]; }); } } return result; } };
相关文章推荐
- LeetCode OJ算法题(十八):Letter Combinations of a Phone Number
- LeetCode OJ - Letter Combinations of a Phone Number
- LeetCode OJ-- Letter Combinations of a Phone Number ***
- LeetCode OJ:Letter Combinations of a Phone Number(数字字母组合)
- LeetCode OJ - Letter Combinations of a Phone Number
- 2017-09-10 LeetCode_017 Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- leetcode Letter Combinations of a Phone Number
- Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- leetcode (17) - Letter Combinations of a Phone Number
- leetcode--Letter Combinations of a Phone Number
- Leetcode Letter Combinations of a Phone Number DFS
- LeetCode(4) - Letter Combinations of a Phone Number
- leetcode_c++:Letter Combinations of a Phone Number(017)
- LeetCode#17 Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- 【Leetcode】【Medium】Letter Combinations of a Phone Number
- LeetCode_17---Letter Combinations of a Phone Number
- leetcode -- Letter Combinations of a Phone Number