17. Letter Combinations of a Phone Number
2016-09-18 15:03
302 查看
17. 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.
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
digits里的每个字符可能对应多种不同的选择,假设digits的长度为n,生成的字符
串s也应有n个,s[i]与digits[i]对应,但s[i]的选择很多。有点类似于排列问题。
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.
digits里的每个字符可能对应多种不同的选择,假设digits的长度为n,生成的字符
串s也应有n个,s[i]与digits[i]对应,但s[i]的选择很多。有点类似于排列问题。
class Solution { //将数字转化成相应的字母串 string dtoa(char digit) { string s; switch(digit) { case '2': s="abc"; break; case '3': s="def";break; case '4': s="ghi";break; case '5': s="jkl";break; case '6': s="mno";break; case '7': s="pqrs";break; case '8': s="tuv";break; case '9': s="wxyz";break; case '0': s="-";break; case '1':s="@";break; } return s; } //采用深度优先搜索,start指digits字符串的第start个字符,s是一个可能结果,r是所有的结果 void DFS(string digits, int start,string & s, vector &r) { if(digits.size()==0)//如果没有digits,直接返回 return ; else if(s.size()==digits.size())//当s.size()与digits.size()相等时,得到一个解 { r.push_back(s); return; }else { string tmp=s;//用来回溯,当DFS(digits,start+1,s,r)完成后,s要恢复原样 string t=dtoa(digits[start]);//将数字转换成字符串 for(int j=0;j letterCombinations(string digits) { vector r; string s; DFS(digits,0,s,r);//从digits的第一个字符digits[0]开始递归调用 return r; } };
相关文章推荐
- 17. Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- LeetCode *** 17. Letter Combinations of a Phone Number
- Leetcode题解-17. Letter Combinations of a Phone Number
- 【Leetcode解题记录】17. Letter Combinations of a Phone Number
- leetcode 17. Letter Combinations of a Phone Number
- 【leetcode】17. Letter Combinations of a Phone Number
- [leetcode: Python]17. Letter Combinations of a Phone Number
- Leet Code OJ 17. Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- Leetcode 17. Letter Combinations of a Phone Number
- LeetCode 17. Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- Leetcode 17. Letter Combinations of a Phone Number
- 17. Letter Combinations of a Phone Number
- [Leetcode]17. Letter Combinations of a Phone Number
- leetcode 17. Letter Combinations of a Phone Number
- leecode 解题总结:17. Letter Combinations of a Phone Number
- 【leetcode】17. Letter Combinations of a Phone Number