码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 18 Letter Combinations of a Phone Number

时间:2014-09-01 21:15:03      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:java   leetcode   

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.

bubuko.com,布布扣

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 class Solution {
	List<String> result = new ArrayList<String>();
	String[] string = new String[] { " ", "", "abc", "def", "ghi", "jkl", "mno",
			"pqrs", "tuv", "wxyz" };

	public List<String> letterCombinations(String digits) {
		result.add(new String(""));
		if (digits.length() == 0)
			return result;
		letterOfCombinations(digits);
		return result;
	}

	public void letterOfCombinations(String digits) {
		int tmp = (int) (digits.charAt(0) - '0');
		int len = result.size();
		int i, j;
		for (i = 0; i < string[tmp].length() - 1; i++) {
			for (j = 0; j < len; j++) {
				result.add(new String(result.get(j)));
			}
		}
		for (i = 0; i < result.size(); i++) {
			j = i / len;
			String str = result.get(i) + string[tmp].charAt(j);
			result.set(i, str);
		}
		if (digits.length() == 1) return;
		letterOfCombinations(digits.substring(1));
	}
}


LeetCode 18 Letter Combinations of a Phone Number

标签:java   leetcode   

原文地址:http://blog.csdn.net/mlweixiao/article/details/38984495

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!