[LeetCode]Letter Combinations of a Phone Number
2015-12-25 22:57
411 查看
题目描述:(链接)
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.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png)
Note:
Although the above answer is in lexicographical order, your answer could be in any order you want.
解题思路:
递归方式,深度优先搜索
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.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/73/Telephone-keypad2.svg/200px-Telephone-keypad2.svg.png)
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: vector<string> letterCombinations(string digits) { vector<string> result; if (digits == "") return result; vector<string> keyboard {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; string midResult(digits.size(), '\0'); dfs(digits, 0, midResult, keyboard, result); return result; } private: void dfs(const string &digits, int index, string &midResult, const vector<string> &keyboard, vector<string> &result) { if (index == digits.size()) { result.push_back(midResult); return; } char c = digits[index]; for (int i = 0; i < keyboard[c - '0'].size(); ++i) { midResult[index] = keyboard[c - '0'][i]; dfs(digits, index + 1, midResult, keyboard, result); } } };
相关文章推荐
- iOS微信小视频优化心得
- HVR实战----Oracle数据库之间的简单同步
- 正确使用Git Flow
- LTIB学习笔记
- ERROR(get_orbfit_args): unknown arguement sp3fit_igsf5328
- python multiprocess
- YUM配置安装使用详解
- 百度UEditor编辑器,合入PHP网站
- LeetCode Minimum Height Trees
- Web服务器工作原理概述
- Java中的引用
- 除法运算符和求余运算符
- Android动画使用方式详解
- 使用宏定义打开/关闭调试输出(debug版本与release版本互相切换)
- 芒果iOS开发之高级面试题二
- 使用UIImageView展现来自网络的图片
- 一起talk C栗子吧(第八十三回:C语言实例--进程间通信概述)
- 求连续区间最大值的几种较为低效算法
- Foundation框架的基本对象之数组对象
- 作业8: 软件工程学习总结