首页 > 代码库 > [leetcode]Letter Combinations of a Phone Number
[leetcode]Letter Combinations of a Phone Number
问题描述:
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.
基本思想;
组合所有情况。
代码:
public List<String> letterCombinations(String digits) { //Java List<String> result = new ArrayList<String>(); result.add(""); if(digits.length() == 0) return result; Map<Integer,String> nums = new HashMap<Integer,String>(); nums.put(2,"abc"); nums.put(3,"def"); nums.put(4,"ghi"); nums.put(5,"jkl"); nums.put(6,"mno"); nums.put(7,"pqrs"); nums.put(8,"tuv"); nums.put(9,"wxyz"); Set<String> comb = new HashSet<String>(); for(int i = 0; i < digits.length(); i++){ Set<String> temp = new HashSet<String>(); if(comb.size() == 0){ String str = nums.get(Integer.valueOf(digits.substring(i,i+1))); for(int j = 0; j < str.length(); j++){ temp.add(str.substring(j,j+1)); } } else{ String str = nums.get(Integer.valueOf(digits.substring(i,i+1))); for(int j = 0; j < str.length(); j++){ String ch = str.substring(j,j+1); for(String item: comb){ temp.add(item+ch); } } } comb.clear(); comb = temp; } List<String> list = new ArrayList<String>(); for(String item: comb){ list.add(item); } return list; }
[leetcode]Letter Combinations of a Phone Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。