• 【leetcode】17. Letter Combinations of a Phone Number


    题目描述:

    Given a digit string, return all possible letter combinations that the number could represent.

    解题分析:

    回溯法的典型应用,用一个数据结构表示出按键与其表示字母的对应关系,直接用回溯法做即可。

    具体代码:

     1 public class Solution {
     2     private static List<String> results=new ArrayList<String>();
     3     private static String[] array= {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
     4     public static List<String> letterCombinations(String digits) {
     5             //String[] array= {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
     6             results=new ArrayList<String>();
     7             if(digits==null||digits.length()==0)
     8                 return results;
     9             StringBuilder sb = new StringBuilder();
    10             
    11             fun(digits,sb,0);
    12             return results;
    13     }
    14 
    15     private static void fun(String digits, StringBuilder sb,
    16             int i) {
    17         if(i==digits.length()-1){
    18             char ch = digits.charAt(i);
    19             int index = ch-'0';
    20             for(int j=0;j<array[index].length();j++){
    21                 sb.append(array[index].charAt(j));
    22                 results.add(sb.toString());
    23                 sb.deleteCharAt(sb.length()-1);
    24             }
    25             return;
    26         }
    27         char ch = digits.charAt(i);
    28         int index = ch-'0';
    29         for(int j=0;j<array[index].length();j++){
    30             sb.append(array[index].charAt(j));
    31             fun(digits, sb, i+1);
    32             sb.deleteCharAt(sb.length()-1);
    33         }
    34     }
    35 }
  • 相关阅读:
    js Dom为页面中的元素绑定键盘或鼠标事件
    javascript中DOM获取和设置元素的内容、样式及效果
    第四十一节 固定在顶部的悬停菜单
    第四十节 定位练习
    第三十九节 层级定位
    第三十八节 固定定位
    第三十七节 绝对定位
    第三十六节 相对定位
    第三十五节 定位
    第三十四节 新闻标题练习
  • 原文地址:https://www.cnblogs.com/godlei/p/5642142.html
Copyright © 2020-2023  润新知