【Leetcode】Letter Combinations of a Phone Number
来源:互联网 发布:移动数据闲时流量包 编辑:程序博客网 时间:2024/05/18 00:22
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.
题意:根据输入的字符串,返回其各个字符对应手机上的字符组合。
这题关键的点主要有:
1)当输入为空字符串,则输出的vector也要包含一个空字符串。
2)输入的字符范围介于'2'--'9'之间,假设输入字符串长度为n,则要新建一个长度为n+1的字符串,并将其第n+1位置为'\0',然后将其1至n位按对应的字符插入即可,此处用到了递归调用的过程。
class Solution {public: vector<string> letterCombinations(string digits) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. vector<string> res; if(digits=="") { res.push_back(""); return res; } int length=digits.size(); char *letter=new char[length+1]; letter[length]='\0'; combination(res,digits,letter,0,length); return res; } void combination(vector<string> &res,string digits,char *letter,int index,int length) { if(index==length) res.push_back(letter); switch(digits[index]) { case '2': for(int i=0;i<3;i++) { letter[index]='a'+i; combination(res,digits,letter,index+1,length); } break; case '3': for(int i=0;i<3;i++) { letter[index]='d'+i; combination(res,digits,letter,index+1,length); } break; case '4': for(int i=0;i<3;i++) { letter[index]='g'+i; combination(res,digits,letter,index+1,length); } break; case '5': for(int i=0;i<3;i++) { letter[index]='j'+i; combination(res,digits,letter,index+1,length); } break; case '6': for(int i=0;i<3;i++) { letter[index]='m'+i; combination(res,digits,letter,index+1,length); } break; case '7': for(int i=0;i<4;i++) { letter[index]='p'+i; combination(res,digits,letter,index+1,length); } break; case '8': for(int i=0;i<3;i++) { letter[index]='t'+i; combination(res,digits,letter,index+1,length); } break; case '9': for(int i=0;i<4;i++) { letter[index]='w'+i; combination(res,digits,letter,index+1,length); } break; default: break; } }};
- 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
- leetcode: Letter Combinations of a Phone Number
- 观察者模式-气象站
- getopt()
- FZU - 2109 Mountain Number
- Linux input子系统分析 输入子系统核心分析
- 复杂的抽象类
- 【Leetcode】Letter Combinations of a Phone Number
- stl queue
- Dijkstra算法,单源最短路径(一个起点到各个点的最短距离)
- oracle中动态、静态注册
- Java_io体系之BufferedInputStream、BufferedOutputStream简介、走进源码及示例——10
- 策略模式-鸭子的变化
- hdoj1181(变形课,广搜)
- 《数据结构和Java集合框架第三版》读书笔记(九)平衡二叉搜索树的旋转
- android textview换行问题