LeetCode之17----Letter Combinations of a Phone Number
来源:互联网 发布:python numpy split 编辑:程序博客网 时间:2024/05/01 23:47
题目:
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的值创建一个vector<string>,然后将传进来的数字字符串替换成数字键上的字母串,然后递归每一个数字字符串中的每一个数字替换之后的字母字符串,每递归一层就在临时字符串的相应位置添加上本次扫描的字符,如果递归到最后一层了则将现在的临时结果字符串添加到结果vector中。
代码:
class Solution {public: std::vector<std::string> letterCombinations(std::string digits) { std::vector<std::string> result; //将手机的每个按键映射到以数字键为下标的数组中 std::vector<std::string> phoneMap = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; const int size = digits.size(); std::vector<std::string> tmp(size); //将数字字符串替换成每个数字键上的字母 if (size == 0) { return result; } for (int i = 0; i < size; ++i) { if (digits[i] == '0' || digits[i] == '1') { return result; } tmp[i] = phoneMap[digits[i] - '0']; } func(result, digits, tmp, size, 0); return result; }private: void func(std::vector<std::string> &result, std::string &tar, std::vector<std::string> &tmp,const int &len, int pos) { if (pos == len) { result.push_back(tar); //如果到最后一层了则将其压入结果vector return; } for (int i = 0; i < tmp[pos].size(); ++i) { tar[pos] = tmp[pos][i]; func(result, tar, tmp, len, pos + 1); } }};
0 0
- LeetCode之17----Letter Combinations of a Phone Number
- LeetCode: Letter Combinations of a Phone Number
- LeetCode Letter Combinations of a Phone Number
- LeetCode: Letter Combinations of a Phone Number
- [Leetcode] Letter Combinations of a Phone Number
- [LeetCode] Letter Combinations of a Phone Number
- 【leetcode】Letter Combinations of a Phone Number
- LeetCode: Letter Combinations of a Phone Number
- [LeetCode]Letter Combinations of a Phone Number
- LeetCode-Letter Combinations of a Phone Number
- [LeetCode] Letter Combinations of a Phone Number
- LeetCode - Letter Combinations of a Phone Number
- LeetCode:Letter Combinations of a Phone Number
- LeetCode | Letter Combinations of a Phone Number
- leetcode Letter Combinations of a Phone Number
- Leetcode: Letter Combinations of a Phone Number
- 【leetcode】Letter Combinations of a Phone Number
- [LeetCode] Letter Combinations of a Phone Number
- JS · 六-对象
- iOS陆哥开发笔记(十三) (Xcode统计代码行数)
- 【Uiautomator】手机系统测试----图库
- 几种图片格式初级理解对比
- LR常见问题整理
- LeetCode之17----Letter Combinations of a Phone Number
- MyEclipse默认编码为GBK,修改为UTF8的方法
- Android学习之如何配置使用Android studio的terminal
- Oracle--decode函数、(case when then else end )和(update set replace)的用法
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- iOS陆哥开发笔记(十四) (Quartz2D简单介绍)
- int *const p与int const *p与const int *p与const *int p
- Linux PS 详解
- 结合内核源码来看如何调整影响TIME_WAIT状态套接字数量的参数