6/02/2014

86. Letter Combinations of a Phone Number

public class Solution {
    public ArrayList<String> letterCombinations(String digits) {
        char[][] table = {{},{'a','b','c'},{'d','e','f'},{'g','h','i'},{'j','k','l'},{'m','n','o'},{'p','q','r','s'},{'t','u','v'},{'w','x','y','z'}};
        ArrayList<String> res = new ArrayList<String> ();
        dfs(digits, table, res, "");
        return res;
    }
   
    public void dfs(String digits, char[][] table, ArrayList<String> res, String temp) {
        if (digits.length()==0) {
            res.add(temp);
            return;
        }
        for (int i=0; i<table[digits.charAt(0)-'0'-1].length; i++) {
            dfs(digits.substring(1), table, res, temp+table[digits.charAt(0)-'0'-1][i]);
        }
    }
}

没有评论:

发表评论