zoukankan      html  css  js  c++  java
  • 24.Letter Combinations of a Phone Number(电话号对应的字符组合)

    Level:

      Medium

    题目描述:

    Given a string containing digits from 2-9 inclusive, 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. Note that 1 does not map to any letters.

    Example:

    Input: "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.

    思路分析:

      建立hashmap将每个数字对应的字符映射存放在map中,利用递归回溯解决问题。

    代码:

    public class Solution{
        public List<String>letterCombinations(String digits){
            List<String>res=new ArrayList<>();
            if(digits==null||digits.equals(""))
                return res;
            HashMap<Character,char[]>map=new HashMap<>();
            map.put('0',new char[]{});
            map.put('1',new char[]{});
            map.put('2',new char[]{'a','b','c'});
            map.put('3',new char[]{'d','e','f'});
            map.put('4',new char[]{'g','h','i'});
            map.put('5',new char[]{'j','k','l'});
            map.put('6',new char[]{'m','n','o'});
            map.put('7',new char[]{'p','q','r','s'});
            map.put('8',new char[]{'t','u','v'});
            map.put('9',new char[]{'w','x','y','z'});
            StringBuilder str=new StringBuilder();
            findComb(digits,map,res,str);
            return res;
        }
        public void findComb(String digits,HashMap<Character,char[]>map,List<String>res,StringBuilder str){
            if(str.length==digits.length){//str的长度等于digits的长度证明是其中一个结果
                res.add(str.toString());
                return;
            }
            for(char c:map.get(digits.charAt(str.length()))){
                str.append(c);
                findComb(digits,map,res,str);//递归回溯找出所有的结果
                str.deleteCharAt(str.length()-1);//每找出一个结果后,str的长度减一,添加下一种可能
            }
        }
    }
    
  • 相关阅读:
    php header
    How to Share a Theme With All Users in a Windows 7 Computer?
    240多个jQuery插件
    Delphi读写UTF8、Unicode格式文本文件
    虚拟网关解决ARP批处理版
    从煎蛋网上抓取妹子图
    在【批处理】中过滤特殊字符
    反序列化(临时)
    python发邮件实例
    反序列化(临时)
  • 原文地址:https://www.cnblogs.com/yjxyy/p/10744615.html
Copyright © 2011-2022 走看看