关闭

Leetcode 17 Letter Combinations of a Phone Number

标签: leetcode工作面试c++algorithmacm
3968人阅读 评论(2) 收藏 举报
分类:

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.

题意为输出所有按键可能表示的字母组合。

因为不知道按键组合有多长,所以可以用搜索来做,

为了效率我用的是BFS,不过好像也没快到哪里去。

先打印出字典表,用队列进行搜索,算法的复杂度最优就行了,不必在意常数项的问题。

class Solution {
public:
    vector<string> letterCombinations(string digits) {
        string dic[11]={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        vector<string> result;
        queue <string> q;
        q.push("");
        for(int i=0;i<digits.length();i++)
        {
            int cnt=q.size();
            while(cnt--)
            {
                string temp=q.front();
                q.pop();
                for(int j=0;j<dic[digits[i]-'0'].length();j++)
                    q.push(temp+dic[digits[i]-'0'][j]);
            }
        }
        if(q.front()=="") q.pop();
        while(!q.empty())
        {
            result.push_back(q.front());
            q.pop();
        }
        return result;
    }
};


1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)

链接 LeetCode题目:https://leetcode.com/problems/letter-combinations-of-a-phone-number/ GitHub代码:h...
  • gatieme
  • gatieme
  • 2016-04-07 16:53
  • 1551

Letter Combinations of a Phone Number——解题报告 (回溯法的应用 )

【题目】        Given a digit string, return all possible letter combinations that the number could rep...
  • puqutogether
  • puqutogether
  • 2015-05-08 08:33
  • 851

LeetCode 问题汇总之递归算法

参考文章:http://fisherlei.blogspot.com 最近在刷LeetCode,开始刷题--面试--刷题。。。 下面将遇到的可以用递归求解的问题归纳于此 1. Combinatio...
  • sbitswc
  • sbitswc
  • 2014-02-27 04:37
  • 9040

leetcode 204题求素数个数

Description: Count the number of prime numbers less than a non-negative number, n   提示晒数法: http://e...
  • wangyaninglm
  • wangyaninglm
  • 2015-04-28 22:20
  • 2140

LeetCode17——Letter Combinations of a Phone Number(手机几个按键对应的字母(符号)组合)

题目: 解法: Simple and efficient iterative solution. Explanation with sample input "123" Initial s...
  • oqqHuTu12345678
  • oqqHuTu12345678
  • 2017-06-22 22:52
  • 205

android实习期日常笔记(三)

1.Setting.Secure PS:Secure system settings, containing system preferences that applications can rea...
  • u012073643
  • u012073643
  • 2015-06-18 11:07
  • 175

leetcode Combinations计算有多少组合

典型的递归回溯法,多做形成这个递归回溯头脑,就好办了。 1 递归一次,填入一个数字 2 填入的数字,不能是小于当前数字的值,防止重复 3 回溯:记得pop_back()最后加上的一个数字,回溯到上一层...
  • kenden23
  • kenden23
  • 2013-12-24 08:26
  • 4560

python得到所有在leetcode上Accepted的代码(一)

得到cookies 要得到所有提交成功的代码,必须先登录你的账号,得到你的cookies,这点我已经在先前的博文python 模拟登陆leetcode中详细讲述了。 url = "ht...
  • Pwiling
  • Pwiling
  • 2016-03-27 09:38
  • 2162

LeetCode 260 Single Number III(只出现一次的数字 III)(*)

原文给定一个数字数组nums,其中有两个元素只出现一次,而其他所有元素均出现两次。找出这两个只出现一次的元素。例如:给定nums = [1, 2, 1, 3, 2, 5],返回[3, 5]。备注: 1...
  • NoMasp
  • NoMasp
  • 2016-02-18 15:06
  • 4439

[LeetCode-191] Number of 1 Bits(判断一个整数中有多少个1)

方法一:【分析】判断一个整数最右边是不是1,我们可以把输入的整数和1相&,判断相&之后的结果,判断是不是为1,然后继续移位判断其它位 方法二:【分析】上述的方法只适用于正数,当输入的数为一个负数的时候...
  • xy010902100449
  • xy010902100449
  • 2015-09-14 20:42
  • 1020
    个人资料
    • 访问:369430次
    • 积分:6626
    • 等级:
    • 排名:第4183名
    • 原创:286篇
    • 转载:11篇
    • 译文:0篇
    • 评论:65条
    博客专栏
    文章分类
    最新评论