码迷,mamicode.com
首页 > 其他好文 > 详细

Letter Combinations of a Phone Number

时间:2015-05-29 13:56:17      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

一道非常经典的dfs

public class Solution {
    String[] keybd ={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
    // http://www.cnblogs.com/springfor/p/3879829.html
    public ArrayList<String> letterCombinations(String digits) {
        ArrayList<String> res = new ArrayList<String>();
        if(digits.length()<1) return res;
        StringBuilder item = new StringBuilder();
        dfs(digits, item, res, 0);
        return res;
    }
    
    public void dfs(String digits, StringBuilder item, ArrayList<String> res, int start){
        if(start== digits.length()) {
            res.add(item.toString()); // 不是 new StringBuilder (item)
            return;
        }
        int num = digits.charAt(start)-‘0‘;
        for(int i=0;i<keybd[num].length();i++){
            item.append(keybd[num].charAt(i));
            dfs(digits, item, res, start+1); // 注意后面那个位置是st+1 不是i
            item.deleteCharAt(item.length()-1);
            
        }
    }
}

 

Letter Combinations of a Phone Number

标签:

原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4538193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!