Fork me on GitHub

[leetcode-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.

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.

vector<string> letterCombinations(string digits)
     {
         vector<string>res;
         if (digits.size() == 0)return res;
         string charmap[10] = { "0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };
         res.push_back("");
         for (int i = 0; i < digits.size();i++)
         {
             vector<string>tempres;
             string chars = charmap[digits[i]-'0'];
             for (int c = 0; c < chars.size();c++)
             {
                 for (int j = 0; j < res.size();j++)
                 {
                     tempres.push_back(res[j] + chars[c]);
                 }
             }
             res = tempres;
         }
         return res;
     }

参考:

https://discuss.leetcode.com/topic/3396/my-iterative-sollution-very-simple-under-15-lines

posted @ 2017-06-06 20:52  hellowOOOrld  阅读(133)  评论(0编辑  收藏  举报