leetcode第17题——**Letter Combinations of a Phone Number
来源:互联网 发布:win10win7共享网络 编辑:程序博客网 时间:2024/05/29 14:11
题目
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.
思路
需要三层循环:最外层循环,遍历数字串,一个数字对应一个相应的字符串,如2对应“abc", 3对应"def";中间层循环,遍历数字对应的字符串,每个字符新加进res的字符串里;最里层循环,遍历已保存的res链表的所有字符串,每个字符串都加上一个字符。虽然看上去有三层循环嵌套,但中间层循环最多也就遍历四次(数字对应的字符串长度最大为4),所以算法的整体时间复杂度大概为O(n^2).
代码
Python
class Solution(object): def letterCombinations(self, digits): """ :type digits: str :rtype: List[str] """ if len(digits) == 0: return [] #按照键盘分布,下标0-9分别对应字符串 digitLis = ["0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"] res = [""] for num in digits: tempLis = [] for ch in digitLis[int(num)]: for str in res: tempLis.append(str + ch) res = tempLis return res
Java
public class Solution { public List<String> letterCombinations(String digits) { List<String> res = new ArrayList<String>();int len = digits.length();if (len == 0) return res;//按照键盘分布,初始化一个字符串数组,下标0-9分别对应指定的字符串String[] digitArr = {"0","1","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};res.add("");int i,j,k;for (i = 0;i < len;i++){List<String> tempLis = new ArrayList<String>();String iStr = digitArr[digits.charAt(i) - '0'];//找出数字对应的字符串for (j = 0;j < iStr.length();j++)for (k = 0;k < res.size();k++)tempLis.add(res.get(k) + iStr.charAt(j));res = tempLis;}return res; }}
1 0
- leetcode 第17题 Letter Combinations of a Phone Number
- LeetCode 第17题:Letter Combinations of a Phone Number
- 【LeetCode】LeetCode——第17题:Letter Combinations of a Phone Number
- leetcode第17题——**Letter Combinations of a Phone Number
- LeetCode——Letter Combinations of a Phone Number
- leetcode 017 —— Letter Combinations of a Phone Number
- LeetCode题解——Letter Combinations of a Phone Number
- Letter Combinations of a Phone Number —— Leetcode
- LeetCode——17. Letter Combinations of a Phone Number
- Leetcode——17. Letter Combinations of a Phone Number
- leetcode—Letter Combinations of a Phone Number
- leetcode第17题 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
- 【Web前端】Js利用正则表达式提取字符串
- codeforces 148E
- 蓝桥杯 01背包
- RunLoop学习
- Eclipse Tomcat配置
- leetcode第17题——**Letter Combinations of a Phone Number
- 欢迎使用CSDN-markdown编辑器
- 1204 寻找子串位置
- cvResize() 图像放缩
- 三种弹窗的解析
- codeforces 264B
- What are bitwise operators?
- String、StringBuffer和StringBuilder类
- innerHTML和innerText造成的乱码现象 以及 background-image放入.css中失效