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

leetcode | Letter Combinations of a Phone Number

时间:2015-05-29 10:08:13      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:leetcode   string   

问题

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.

解析

class Solution {
public:
    const vector<string> key = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
    vector<string> letterCombinations(string digits) {
        vector<string> result;
        if (digits.size() == 0)
            return result;
        string str(digits.size(), ' ');
        PushString(digits, 0, str, result);
        return result;
    }

private:
    void PushString(string& digits, int k,string &str,vector<string>& result) {
        if (k == digits.size()) {
            cout << str.size() << endl;
            result.push_back(str);
            return;
        }
        for (int i = 0; i < key[digits[k]-'0'].size(); i++) {
            str[k] = key[digits[k]-'0'][i];  //因为每一个str的长度都等于digits的大小,所以str可以重用(完全覆盖)
            PushString(digits, k+1, str, result);
        }


    }
};



leetcode | Letter Combinations of a Phone Number

标签:leetcode   string   

原文地址:http://blog.csdn.net/quzhongxin/article/details/46134829

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