LeetCode--17. 电话号码的字母组合

LeetCode--17. 电话号码的字母组合_第1张图片
————————————————————————————————————————————————————
递归搜索树:
LeetCode--17. 电话号码的字母组合_第2张图片

import java.util.ArrayList;
import java.util.List;

class Solution {
    String[] strs = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
    List<String> ans = new ArrayList<>();

    public List<String> letterCombinations(String digits) {
        if (digits.length() == 0) return ans;
        dfs(digits, 0, "");
        return ans;
    }
    //u:digits的当前下标
    private void dfs(String digits, int u, String path) {
        if (u == digits.length()) {
            ans.add(path);
        } else {
        	//当前数字符对应的字母串
            String str = strs[digits.charAt(u) - '0'];
            for (int i = 0; i < str.length(); i++) {
                char c = str.charAt(i);
                dfs(digits, u + 1, path + c);
            }
        }
    }
}

你可能感兴趣的:(LeetCode)