欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

leetcode 17 电话号码的数字组合

程序员文章站 2022-04-18 13:37:28
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 1 class Solution { 2 List temp=new ArrayList(); 3 Map

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。leetcode 17 电话号码的数字组合

 1 class solution {
 2     list<string> temp=new arraylist<string>();
 3     map<string,string> map=new hashmap<string,string>(){{
 4         put("2","abc");
 5         put("3","def");
 6         put("4","ghi");
 7         put("5","jkl");
 8         put("6","mno");
 9         put("7","pqrs");
10         put("8","tuv");
11         put("9","wxyz");
12         
13     }};
14     public void back(string before,string next){
15         if(next.length()==0){
16             temp.add(before);
17             return;
18         }
19         for(int i=0;i<(map.get(next.substring(0,1))).length();i++){
20             back(before+(map.get(next.substring(0,1))).substring(i,i+1),next.substring(1));
21         }
22     }
23     public list<string> lettercombinations(string digits) {
24         if(digits==null||digits.length()<1){
25             return temp;
26         }
27         back("",digits);
28         return temp;
29     }
30 }

反思:

1,对回朔与递归不太熟练