`
plan454
  • 浏览: 6926 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Letter Combinations of a Phone Number

 
阅读更多
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.

这个可以用递归做,主要思想是尝试,也就是Backtracking,这个还是比较好理解的。
public List<String> letterCombinations(String digits) {
		List<String> result = new ArrayList<String>();
		if (digits == null || digits.length() == 0) {
			return result;
		}
	String[] strs = { "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv",
				"wxyz" };
		List<String> ls = new ArrayList<String>();
		String temp = digits;
		if (digits.length() > 1) {
			temp = digits.substring(0,digits.length() - 1);
			List<String> lett = letterCombinations(temp);
			
			int tem = Integer.valueOf(digits.substring(digits.length() - 1));
			if (tem != 1 && tem != 0) {
				for (String str : lett) {
					for (int i = 0; i < strs[tem-2].length(); i++) {
						String s = str + strs[tem - 2].charAt(i);
						ls.add(s);
					}
				}
			}else{
				ls = lett;
			}
			 
		}
		if (digits.length() == 1) {
			String temp1 = digits;
			if (Integer.valueOf(temp1) != 1 && Integer.valueOf(temp1) != 0) {
				for (int i = 0; i < strs[Integer.valueOf(temp1) - 2].length(); i++) {
					String s = "" + strs[Integer.valueOf(temp1) - 2].charAt(i);
					ls.add(s);
				}
			}
		}

		return ls;
	}
分享到:
评论

相关推荐

    17. Letter Combinations of a Phone Number**

    17. Letter Combinations of a Phone Number** https://leetcode.com/problems/letter-combinations-of-a-phone-number/ 题目描述 Given a string containing digits from 2-9 inclusive, return all possible ...

    js代码-17. Letter Combinations of a Phone Number

    js代码-17. Letter Combinations of a Phone Number

    程序员面试宝典LeetCode刷题手册

    17. Letter Combinations of a Phone Number 18. 4Sum 19. Remove Nth Node From End of List 20. Valid Parentheses 21. Merge Two Sorted Lists 22. Generate Parentheses 23. Merge k Sorted Lists 24. Swap ...

    Coding Interview In Java

    leetcode Java 246 題目及解答 (英文) Contents 1 Rotate Array in Java 15 ...242 Letter Combinations of a Phone Number 587 243 Restore IP Addresses 589 244 Reverse Integer 591 245 Palindrome Number 593

    leetcode分类-LeetCode-Java-Accepted:这是我的Java学习之旅

    of a Phone Number * Target: Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. * Difficulty:Medium * Classification:String,...

    cpp-算法精粹

    Letter Combinations of a Phone Number 广度优先搜索 Word Ladder Word Ladder II Surrounded Regions 总结 深度优先搜索 Additive Number Palindrome Partitioning Unique Paths Unique Paths II N-Queens N-...

    leetcode530-algorithm:算法

    leetcode 530 ** LeetCode 题目更新 ** 用来记录业余时间所做的算法题目,保持...Combinations of a Phone Number 018 4Sum 020 Valid Parentheses 022 Generate Parentheses 028 Implement strStr() 031 Next Permutat

    leetcode怎么销号-LeetCode-Solutions:我自己的LeetCode解决方案

    Combinations of a Phone Number Medium 回溯、暴力 0034 Find First and Last Position of Element in Sorted Array Medium 二分 0039 Combination Sum Medium 回溯 0040 Combination Sum II Medium 回溯 0046 ...

    leetcode338-LeetCode:LeetCode刷题总结

    第 338 章力码 LeetCode刷题总结 1.Two Sum 2.Add Two Numbers 3.Longest Substring Without Repeating ...of ...Number ...17.Letter Combinations of a Phone Number 18.4Sum 19.Remove Nth Node From End

    leetcode2sumc-leetcode:JavaScript版本leetcode中文版代码

    leetcode 2 sum c leetcode 力扣(Leetcode)编程题,JavaScript版本。 编号 中文题目 英文题目 题目描述 JavaScript ...Number ...Letter Combinations of a Phone Number DFS 中等 18 4Sum 中等 19 Remo

    Leetcode扑克-leetcode:Leetcode算法实践

    Combinations of a Phone Number 电话号码的字母组合 回溯法,递归 / Backtrack,Recursion 回溯+递归 Daily Challenge 2020/08/26 20 Valid Parentheses 有效的括号 Stack / 栈 用栈实现配对 Daily Challenge 2020/...

    leetcode二维数组搜索-LeetCode-Review:重写LeetCode问题

    Combinations of a Phone Number backtracking int solution[MAX_DIMENSION]; void Backtracking(int dimension) { if(solution is well-generated) { process solution return; } for( x = each value of current ...

    leetcode怎么计算空间复杂度是指-LeetCode-Solution:我的第一个LeetCode解决方案

    Combinations of a Phone Number 093:Restore IP Addresses 树的遍历问题也可以用这种思想来解释。只不过是特殊的递归而已。(只有两路,不用循环) 题型二:动态规划(要整理搜索和DP的区别,都可以用一个状态转移...

    leetcode怎么销号-leetcodeAns:leetcode问题的答案python

    Combinations of a Phone Number: 这题是要找到号码对应字符串的所有组合。用字典来表示数字到字符串的组合。然后遍历数字串。使其对应的字母list与前面已有的组合进行 连接即可。 19.Remove Nth Node From End of ...

    微软内部资料-SQL性能优化5

    However, if we are searching for multiple rows, such as duplicate values, or keys in a range, anything more than a small number of rows will make the nonclustered index search very inefficient. ...

    Dir-For-LeetCode

    017_Letter_Combinations_of_a_Phone_Number 018_4总和 019_Remove_Nth_Node_From_End_of_List 020_Valid_Parentheses 021_Merge_Two_Sorted_Lists 022_Generate_Parentheses 023_Merge_k_Sorted_Lists 024_...

    gasstationleetcode-leetcode-rust:莱特代码休息

    加油站 leetcode ...17-letter-combinations-of-a-phone-number 20 cargo run --bin 20-valid-parentheses 21 cargo run --bin 21-merge-two-sorted-lists 27 cargo run --bin 27-remove-element 28

    LeetCode 电话号码的字母组合

    题目来源:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number 题目 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 ...

    javalruleetcode-leetcode:leetcode问题的解决方案

    java lru leetcode Leetcode 问题的解决方案 问题 解决方案 0001_Two_Sum 0002_Add_Two_Numbers 0003_Longest_Substring_Without_Repeating_Characters ...0004_Median_of_Two_...0017_Letter_Combinations_of_a_Phone_N

Global site tag (gtag.js) - Google Analytics