首页 > 代码库 > Letter Combinations of a Phone Number

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.

分析:暴力搜索所有结果。

代码如下:

 1 class Solution { 2 public: 3     const vector<string> keyboards{" ","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; 4     vector<string> letterCombinations(string digits) { 5         vector<string> res; 6         string path; 7         dfs(res,path,digits,0); 8         return res; 9     }10     void dfs(vector<string> & res, string & path, string digits, int k){11         if(digits.size() == k){12             res.push_back(path);13             return;14         }15         for(auto c: keyboards[digits[k]-0]){16             path.push_back(c);17             dfs(res,path,digits,k+1);18             path.pop_back();19         }20     }21 };