leetcode17电话号码的字母组合

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:

输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]

示例 2:

输入:digits = ""
输出:[]

示例 3:

输入:digits = "2"
输出:["a","b","c"]

提示:

package leetcode;

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

public class LetterCombinations_17 {
    public List letterCombinations(String digits) {
        List res = new ArrayList<>();
        List temp = new ArrayList<>();
        for (int i = 0; i < digits.length(); i++) {
            if (res.size() == 0) {
                temp.addAll(mapDigits("", digits.substring(i, i + 1)));
            } else {
                for (int j = 0; j < res.size(); j++) {
                    temp.addAll(mapDigits(res.get(j), digits.substring(i, i + 1)));
                }
            }
            res = temp;
            temp = new ArrayList<>();
        }
        return res;
    }

    public List mapDigits(String ori, String digit) {
        List res = new ArrayList<>();
        switch (digit) {
            case "2":
                res.add(ori + "a");
                res.add(ori + "b");
                res.add(ori + "c");
                break;
            case "3":
                res.add(ori + "d");
                res.add(ori + "e");
                res.add(ori + "f");
                break;
            case "4":
                res.add(ori + "g");
                res.add(ori + "h");
                res.add(ori + "i");
                break;
            case "5":
                res.add(ori + "j");
                res.add(ori + "k");
                res.add(ori + "l");
                break;
            case "6":
                res.add(ori + "m");
                res.add(ori + "n");
                res.add(ori + "o");
                break;
            case "7":
                res.add(ori + "p");
                res.add(ori + "q");
                res.add(ori + "r");
                res.add(ori + "s");
                break;
            case "8":
                res.add(ori + "t");
                res.add(ori + "u");
                res.add(ori + "v");
                break;
            case "9":
                res.add(ori + "w");
                res.add(ori + "x");
                res.add(ori + "y");
                res.add(ori + "z");
                break;
        }
        return res;
    }

    public static void main(String[] args) {
        LetterCombinations_17 letterCombinations_17 = new LetterCombinations_17();
        List strings = letterCombinations_17.letterCombinations("23");
        System.out.println(strings);
    }
}
展开阅读全文

页面更新:2024-04-03

标签:组合   字母   示例   字符串   按键   电话号码   顺序   提示   答案   数字   电话

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top