同城旅行第一题,累死了

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param digits string字符串 输入的号码
     * @return string字符串ArrayList
     */
    ArrayList<String> list = new ArrayList<>();
    public ArrayList<String> letterCombinations (String digits) {
        letterCombinations(digits.toCharArray());
        return list;
    }

    public void letterCombinations (char[] digits) {
        if (digits.length == 1) {
            char c = digits[0];
            if (c == '2') {
                list.add("a");
                list.add("b");
                list.add("c");
            } else if (c == '3') {
                list.add("d");
                list.add("e");
                list.add("f");
            } else if (c == '4') {
                list.add("g");
                list.add("h");
                list.add("i");
            } else if (c == '5') {
                list.add("j");
                list.add("k");
                list.add("l");
            } else if (c == '6') {
                list.add("m");
                list.add("n");
                list.add("o");
            } else if (c == '7') {
                list.add("p");
                list.add("q");
                list.add("r");
                list.add("s");
            } else if (c == '8') {
                list.add("t");
                list.add("u");
                list.add("v");
            } else if (c == '9') {
                list.add("w");
                list.add("x");
                list.add("y");
                list.add("z");
            }
            return;
        }
        char[] chars = new char[digits.length - 1];
        for (int i = 0; i < digits.length - 1; i++) {
            chars[i] = digits[i+1];
        }
        letterCombinations(chars);
        char c = digits[0];
        if (c == '2') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("a" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("b" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("c" + list.get(j));
            }
            list = temp;
        } else if (c == '3') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("d" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("e" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("f" + list.get(j));
            }
            list = temp;
        } else if (c == '4') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("g" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("h" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("i" + list.get(j));
            }
            list = temp;
        } else if (c == '5') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("j" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("k" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("l" + list.get(j));
            }
            list = temp;
        } else if (c == '6') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("m" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("n" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("o" + list.get(j));
            }
            list = temp;
        } else if (c == '7') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("p" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("q" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("r" + list.get(j));
            }
             for (int j = 0; j < list.size(); j++) {
                temp.add("s" + list.get(j));
            }
            list = temp;
        } else if (c == '8') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("t" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("u" + list.get(j));
            }
             for (int j = 0; j < list.size(); j++) {
                temp.add("v" + list.get(j));
            }
            list = temp;
        } else if (c == '9') {
            ArrayList<String> temp = new ArrayList<>();
            for (int j = 0; j < list.size(); j++) {
                temp.add("w" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("x" + list.get(j));
            }
             for (int j = 0; j < list.size(); j++) {
                temp.add("y" + list.get(j));
            }
            for (int j = 0; j < list.size(); j++) {
                temp.add("z" + list.get(j));
            }
            list = temp;
        }
    }
}

全部评论
lc原题
点赞 回复 分享
发布于 2023-10-12 20:34 陕西

相关推荐

11-05 14:05
门头沟学院 Java
苏州园测信息科技有限公司 java实习 月薪2k,包住
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务