leetcode 17.电话号码的字母组合
题目
解法 BFS + hash
/*
广度遍历,利用队列实现
*/
class Solution {private:unordered_map<char,string> tel_map;queue <string> re_queue;vector<string> result;
public:Solution(){tel_map = {{'2',"abc"},{'3',"def"},{'4',"ghi"},{'5',"jkl"},{'6',"mno"},{'7',"pqrs"},{'8',"tuv"},{'9',"wxyz"}};}vector<string> letterCombinations(string digits) {if(digits.length() == 0)return result;auto p = tel_map.find(digits[0]);string tmp1 = p->second;for(int i = 0 ; i < tmp1.length();i++){string tmp2;tmp2.push_back(tmp1[i]);re_queue.push(tmp2);}for(int i = 1 ; i < digits.length();i++){unordered_map<char,string>::iterator p = tel_map.find(digits[i]);string tmp3 = p->second;vector <string> tmp4;while(!re_queue.empty()){string tmp5 = re_queue.front();re_queue.pop();for(int j = 0 ; j < tmp3.length();j++){string tmp6 = tmp5 + tmp3[j];tmp4.push_back(tmp6);}}for(int k = 0; k < tmp4.size();k++){re_queue.push(tmp4[k]);}}while(!re_queue.empty()){result.push_back(re_queue.front());re_queue.pop();}return result;}
};
时间复杂度为 O ( 3 N ∗ 4 M ) O(3^N * 4^M) O(3N∗4M) N + M为输入数字的总数。
leetcode 17.电话号码的字母组合相关推荐
- [DFS|回溯法] leetcode 17 电话号码的字母组合
[DFS|回溯法] leetcode 17 电话号码的字母组合 1.题目 题目链接 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 ...
- LeetCode 17电话号码的字母组合(搜索)18四数之和
电话号码的字母组合 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23 ...
- leetcode 17. 电话号码的字母组合 思考分析
题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 思考与递归程序 解空间树的宽度是输入数字对应的字符的个 ...
- [LeetCode] 17. 电话号码的字母组合
1 题目描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输 ...
- LeetCode 17. 电话号码的字母组合(回溯)
文章目录 1. 题目信息 2. 解题 1. 题目信息 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: ...
- leetcode —— 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...
- leetcode 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23" 输出:[&quo ...
- C++ leetcode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
一.解题思路 用map可以加快查询速度,DFS深度搜索,DFS是一种很常见的对于多循环或者n!的好的搜索算法. 二.代码:C++ void init(map<char, string> & ...
- LeetCode 17 电话号码的字母组合
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ 解决方案 class Solution {public ...
最新文章
- 北大联合UCLA发表论文:9头以上Transformer就能模拟CNN!
- 运维笔试Shell编程题
- PAT1034 Head of a Gang (30)(并查集)
- 分布式工具的一次小升级⏫ 1
- word 替换 增加引号_如何在Word 2013文档中替换部分(不是全部)智能引号
- mysql group by 重复_mysql – 使用GROUP BY删除重复项的查询
- php内容管理器是什么原因,有什么好的php内容管理后台吗?打算试水接单的大三狗提问...
- Django 缓存系统
- 关于原生AJAX和jQueryAJAX的编程
- 基于JAVA+SpringMVC+Mybatis+MYSQL的博客系统
- Flash 环境 全屏效果
- flask+uwsgi 在调试过程中让python文件的更改自动重启uwsgi
- 1.6数组-像素翻转
- Java 添加、验证PDF 数字签名
- C语言贪吃蛇用VC2022
- 十七年未盈利,硅谷最神秘独角兽Palantir的盈利魔咒何时破?
- matlab抠图数据,MATLAB抠图
- c语言中三分之一次方怎么表示,2的3次方怎么写
- WFA发布LTE-U共存测试计划 Wi-Fi和LTE-U将公平共享频谱
- python学习笔记(三)之字符串的处理
热门文章
- ADSP-21569/ADSP-21593的开发入门(中)
- [勇者闯LeetCode] 191. Number of 1 Bits
- 华为平板可以安装python_10 个可以在平板电脑上使用的 Python 编辑器
- 磁盘镜像分析工具Autopsy
- cocos creator慢镜头
- 探寻智能网联趋势下“中国模式”创新崛起之路
- 小森动画回忆录(二)-哆啦A梦主界面
- jquery serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。
- 【Django】项目中调用深度学习模型model.predict()(Django两种启动方式runserver和uwsgi的区别)
- 实现本地 Markdown 博客文章自动发送到博客园