码迷,mamicode.com
首页 > 其他好文 > 详细

[*leetcode 17] Letter Combinations of a Phone Number

时间:2015-04-01 00:06:37      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

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.

[Solution]

递归求解。

 1 const string dict[10] = {"", " ", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
 2     vector<string> letterCombinations(string digits) 
 3     {
 4         vector<string> result;
 5         if (digits.size() == 0)
 6             return result;
 7         string line;
 8         proceed(result, line, digits, 0);
 9         
10         return result;
11     }
12     
13     void proceed(vector<string> &result, string &line, const string &digits, int steps)
14     {
15         if(steps == digits.size())
16         {
17             result.push_back(line);
18             return;
19         }
20         
21         for (int i = 0; i < dict[digits[steps] - 0].size(); i++)
22         {
23             line.push_back(dict[digits[steps] - 0][i]);
24             proceed(result, line, digits, steps + 1);
25             line.pop_back();
26         }
27     }

 

[*leetcode 17] Letter Combinations of a Phone Number

标签:

原文地址:http://www.cnblogs.com/ym65536/p/4382162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!