代码改变世界

leetcode - Letter Combinations of a Phone Number

2013-04-25 22:10  张汉生  阅读(358)  评论(0)    收藏  举报

题目描述:点击此处

 1 class Solution {
 2 public:
 3   string tables[8]={"abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
 4   void dfs(vector<string> & result, int n, int i, string & digits, string cur){
 5     string str = tables[digits.at(i)-'2'];
 6     int len = str.length();
 7     for (int j=0; j<len; j++){
 8       string next = cur+str.at(j);
 9       if (i==n-1)
10         result.push_back(next);
11       else dfs(result,n,i+1,digits,next);
12     }
13   }
14   vector<string> letterCombinations(string digits) {
15     // Start typing your C/C++ solution below
16     // DO NOT write int main() function
17     vector<string> rlt;
18     int len = digits.length();
19     if (len<=0){
20       rlt.push_back("");
21       return rlt;
22     }
23     dfs(rlt, len, 0, digits,"");
24     return rlt;
25   }
26 };