首页 > 其他分享 >电话号码的字母组合

电话号码的字母组合

时间:2022-11-26 15:35:16浏览次数:54  
标签:map Character ArrayList List add 电话号码 字母组合 new

https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/

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

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

class Solution {
    public List < String > letterCombinations(String digits) {
        List < String > resultList = new ArrayList();
        if(digits == null || digits.length() == 0) {
            return resultList;
        }
        Map < Character, List < Character >> map = new HashMap();
        List < Character > list2 = new ArrayList();
        list2.add('a');
        list2.add('b');
        list2.add('c');
        map.put('2', list2);
        List < Character > list3 = new ArrayList();
        list3.add('d');
        list3.add('e');
        list3.add('f');
        map.put('3', list3);
        List < Character > list4 = new ArrayList();
        list4.add('g');
        list4.add('h');
        list4.add('i');
        map.put('4', list4);
        List < Character > list5 = new ArrayList();
        list5.add('j');
        list5.add('k');
        list5.add('l');
        map.put('5', list5);
        List < Character > list6 = new ArrayList();
        list6.add('m');
        list6.add('n');
        list6.add('o');
        map.put('6', list6);
        List < Character > list7 = new ArrayList();
        list7.add('p');
        list7.add('q');
        list7.add('r');
        list7.add('s');
        map.put('7', list7);
        List < Character > list8 = new ArrayList();
        list8.add('t');
        list8.add('u');
        list8.add('v');
        map.put('8', list8);
        List < Character > list9 = new ArrayList();
        list9.add('w');
        list9.add('x');
        list9.add('y');
        list9.add('z');
        map.put('9', list9);

        // // 将队列中已有的组合拉出来,与当前位置的字母逐一组合,然后又放进队列里
        Queue < String > queue = new LinkedList();
        for(int i = 0; i < digits.length(); i++) {
            if(i == 0) {
                List < Character > list = map.get(digits.charAt(i));
                for(Character c: list) {
                    queue.add(String.valueOf(c));
                }
                continue;
            }
            // 队列中已有的组合数量
            int size = queue.size();
            for(int j = 0; j < size; j++) {
                String s = queue.poll();
                List < Character > list = map.get(digits.charAt(i));
                for(Character c: list) {
                    queue.add(s + String.valueOf(c));
                }
            }
        }
        int size = queue.size();
        for(int j = 0; j < size; j++) {
            String s = queue.poll();
            resultList.add(s);
        }
        return resultList;
    }
}

标签:map,Character,ArrayList,List,add,电话号码,字母组合,new
From: https://www.cnblogs.com/umgsai/p/16927488.html

相关文章

  • 升级macOS Monterey后总提示“请检查apple id电话号码”
    将MacOS的操作系统升级到macOSMonterey之后,每次打开电脑操作右上角都会出现弹窗“请检查appleid电话号码”看着很烦,就想办法把自己之前不用的电话号码给换掉可以登陆​​......
  • 升级macOS Monterey后总提示“请检查apple id电话号码”
    将MacOS的操作系统升级到macOSMonterey之后,每次打开电脑操作右上角都会出现弹窗“请检查appleid电话号码”看着很烦,就想办法把自己之前不用的电话号码给换掉可以登陆h......
  • 【JS】查验电话号码(fCC)
    题目要求查验电话号码是否输入正确,总结来说,需要满足以下条件:号码中的数字应该在10-13个之间不包含()-以外的符号()要完整可以有空格如果最前面加了国家编号,限定编号......
  • 17. 电话号码的字母组合
    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。 示......
  • 手机号、电话号码、身份证正则验证
    [js最新手机号码、电话号码正则表达式]正则表达式(regularexpression)是一个描述字符模式的对象。使用JavaScript正则表达式可以进行强大的模式匹配和文本检索与替换功能。......
  • C语言电话号码录入查询及修改系统
    C语言电话号码录入查询及修改系统题目B1:电话号码录入、查询及修改系统(一)课题内容利用哈希表设计并实现电话号码录入、查询及修改系统。(二)课题要求(1)设每个记录......
  • Problem P28. [算法课回溯] 电话号码的字母组合
    回溯,唯一麻烦的是要建立一个字典,键值对为数字字符对应英文字符串#include<iostream>#include<bits/stdc++.h>#include<cstdio>#include<string>usingnamespaces......
  • 老板丢给我一堆电话号码,让我挨个进行归属地、运营商查询
    如果觉得文章写得好,如果你想要博客文章中的数据,请关注公众号:【数据分析与统计学之美】,进群和作者交流!目录  ​​1、写作目的​​​  ​​​​​​2、判断电话号码是否......
  • 简单-1694. 重新格式化电话号码
    给你一个字符串形式的电话号码 number 。number 由数字、空格 ''、和破折号 '-' 组成。请你按下述方式重新格式化电话号码。首先,删除 所有的空格和破折号。其......
  • 电话号码分析与处理、开发小游戏贪食蛇
    Java核心API--电话号码分析与处理一、熟悉Math类    Math类包含执行基本数字运算的方法,它没有构造方法,当使用类中的成员时,要查看类中的成员是否是静态,如果是静态......