LeetCode之 Letter Combinations of a Phone Number

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ainiyiwan123/article/details/80318042

我胡汉三又回来了,这次我不会再离开了

LeetCode官网:https://leetcode.com/

我是直接用GitHub授权登录的。

问题

给定一个包含包含数字的字符串2-9,返回数字可能表示的所有可能的字母组合。
数字到字母的映射(就像在电话按钮上一样)在下面给出。请注意,1不映射到任何字母。
这里写图片描述

举例

Input: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

注意

虽然上面的答案是按字典顺序排列的,但您的答案可以按您想要的任何顺序排列。

解法

class Solution {
    public List<String> letterCombinations(String digits) {
        LinkedList<String> ans = new LinkedList<String>();
        if(digits.isEmpty()) return ans;
        String[] mapping = new String[] {"0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
        ans.add("");
        while(ans.peek().length()!=digits.length()){
            String remove = ans.remove();
            String map = mapping[digits.charAt(remove.length())-'0'];
            for(char c: map.toCharArray()){
                ans.addLast(remove+c);
            }
        }
        return ans;
    }
}
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页