力扣刷题记录 -- JAVA--56---17. 电话号码的字母组合


一、题目

在这里插入图片描述

二、代码

class Solution 
{
    String str2 = "abc";
    String str3 = "def";
    String str4 = "ghi";
    String str5 = "jkl";
    String str6 = "mno";
    String str7 = "pqrs";
    String str8 = "tuv";
    String str9 = "wxyz";
    List<String> re_list = new LinkedList<>();
    StringBuilder str_bu = new StringBuilder();

    public List<String> letterCombinations(String digits) 
    {
        if(digits.length()==0) return re_list;
         back(digits,0);
         System.out.println("   digits.length()      "+digits.length());
         
         return re_list;

    }

    public void back(String digits, int start)
    {
         if(start>digits.length()) return ;
         if(start == digits.length()) 
        {
            System.out.println("  添加时 start  "+start);
            System.out.println(" str_bu   "+str_bu); 
            re_list.add(str_bu.toString());
            return ;
        }

        int i,j;
        int length = digits.length();

 
             char temp_char = digits.charAt(start);
             if(temp_char == '2')
             {
                 int small_length = str2.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str2.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);
                 }   
             }
             else if(temp_char == '3')
             {
                 int small_length = str3.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str3.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                     
                 }  
             }
             else if(temp_char == '4')
             {
                 int small_length = str4.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str4.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                     
                 }  
             }
             else if(  temp_char == '5')
             {
                 int small_length = str5.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str5.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                     
                 }  
             }
             else if(temp_char == '6')
             {
                 int small_length = str6.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str6.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                     
                 }  
             }
             else if(temp_char == '7')
             {
                 int small_length = str7.length();
                 for(j=0;j<small_length;j++)
                 {
                     str_bu.append(str7.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                    
                 }  
             }
             else if(temp_char == '8')
             {
                 int small_length = str8.length();
                 for(j=0;j<small_length;j++)
                 {
                    str_bu.append(str8.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                    
                 }  
             }
             else if(temp_char == '9')
             {
                 int small_length = str9.length();  
                 for(j=0;j<small_length;j++)
                 {
                      str_bu.append(str9.charAt(j));
                     back(digits,start+1);
                     str_bu.deleteCharAt(str_bu.length()-1);                    
                 }  
             }
        
    } 

}

三、运行结果

=在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@白圭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值