iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java电话号码的字母组合问题怎么解决
  • 671
分享到

Java电话号码的字母组合问题怎么解决

2023-07-05 12:07:30 671人浏览 泡泡鱼
摘要

这篇文章主要介绍了Java电话号码的字母组合问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java电话号码的字母组合问题怎么解决文章都会有所收获,下面我们一起来看看吧。电话号码的字母组合中等给定一个

这篇文章主要介绍了Java电话号码的字母组合问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java电话号码的字母组合问题怎么解决文章都会有所收获,下面我们一起来看看吧。

电话号码的字母组合

中等

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

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

Java电话号码的字母组合问题怎么解决

示例 1:

输入:digits = "23"

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

示例 2:

输入:digits = ""

输出:[]

示例 3:

输入:digits = "2"

输出:["a","b","c"]

题解

  • 先把2-9对应的字符用一个map存起来

  • 我们可以知道这是一个全排列的问题

  • 每次我们找到一组满足条件的组合,只需把最后一个字符删除在找下一个,知道找完第一个字符对应的所有组合,回溯上一个字符往下,继续之前的操作

  • 因为不确定有几个确定字符,所以用递归的方式来确定for循环的次数

例如23

2=abc

3=def

Character c = digits.charAt(start);String str = phoneMap.get(c);for(int i = 0;i < str.length();i++){    list1.add(str.charAt(i));    help(digits,start+1);    list1.remove(list1.size()-1);}

先从map取出2对应的字符遍历,每次遍历会先把该字符存入一个list1容器,递归该方法会在嵌套一个for循环3对应字符长度,如果还有则继续嵌套,当lsit1容器大小与digits长度一样,说明找到了一组解,遍历存入集合结束该循环,代码在下方,因为要回溯,所以每次调用该方法后会把该list1长度减一,实现回溯的过程

class Solution {    List<String> list = new ArrayList<>();    List<Character> list1 = new ArrayList<>();    Map<Character, String> phoneMap = new HashMap<Character, String>() {{            put('2', "abc");            put('3', "def");            put('4', "ghi");            put('5', "jkl");            put('6', "mno");            put('7', "pqrs");            put('8', "tuv");            put('9', "wxyz");        }};    public List<String> letterCombinations(String digits) {        if(digits.length() == 0){            return new ArrayList<>();        }                help(digits,0);        return list;    }    public void help(String digits,int start){        if(list1.size() == digits.length()){            String str = "";            for(int j = 0;j < list1.size();j++){                str += list1.get(j);            }            list.add(str);            return;        }        Character c = digits.charAt(start);        String str = phoneMap.get(c);        for(int i = 0;i < str.length();i++){            list1.add(str.charAt(i));            help(digits,start+1);            list1.remove(list1.size()-1);        }    }}

关于“Java电话号码的字母组合问题怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java电话号码的字母组合问题怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java电话号码的字母组合问题怎么解决

本文链接: https://www.lsjlt.com/news/351499.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java电话号码的字母组合问题怎么解决
    这篇文章主要介绍了Java电话号码的字母组合问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java电话号码的字母组合问题怎么解决文章都会有所收获,下面我们一起来看看吧。电话号码的字母组合中等给定一个...
    99+
    2023-07-05
  • C++实现LeetCode(17.电话号码的字母组合)
    [LeetCode] 17. Letter Combinations of a Phone Number 电话号码的字母组合 Given a string containing di...
    99+
    2024-04-02
  • C++ 电话号码的字母组合功能实现
    目录电话号码的字母组合描述示例1示例2示例3思路/解法方式一方式二电话号码的字母组合 描述 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返...
    99+
    2022-11-13
    C++ 电话号码的字母组合 C++号码字母组合
  • Java 电话号码的组合示例详解
    目录电话号码的字母组合中等题解电话号码的字母组合 中等 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电...
    99+
    2023-03-13
    Java 电话号码组合 Java 电话号码
  • 怎么解决JSON.toJSONString()首字母大小写的问题
    这篇文章主要介绍“怎么解决JSON.toJSONString()首字母大小写的问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么解决JSON.toJSONString()首字母大小写的问题”文章...
    99+
    2023-06-29
  • Java数组、字符和等差数列问题怎么解决
    这篇文章主要讲解了“Java数组、字符和等差数列问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java数组、字符和等差数列问题怎么解决”吧!题目一 解法class&nb...
    99+
    2023-06-29
  • JAVA中的Unicode编码问题怎么解决
    在Java中解决Unicode编码问题有多种方法:1. 使用正确的字符编码读取和写入文件:当从文件中读取或写入文本时,需要注意使用正...
    99+
    2023-08-19
    JAVA
  • CSS怎么解决无空格的字母、数字过长不自动换行的问题
    本篇内容介绍了“CSS怎么解决无空格的字母、数字过长不自动换行的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • MySQL字符集编码问题怎么解决
    本文小编为大家详细介绍“MySQL字符集编码问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL字符集编码问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法1:在创建数据库时,指定字...
    99+
    2023-07-06
  • Java非法字符: ‘\ufeff‘问题怎么解决
    这篇“Java非法字符: ‘\ufeff‘问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java非法字...
    99+
    2023-07-05
  • 怎么解决php字节丢失乱码问题
    这篇文章主要介绍怎么解决php字节丢失乱码问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php字节丢失乱码的解决办法:1、使用“mb_substr($str, 0, 1, 'gbk');...
    99+
    2023-06-22
  • java的setTimestamp问题怎么解决
    如果你在使用Java中的setTimestamp方法时遇到问题,可以尝试以下解决方法:1. 检查参数类型:确保你传递给setTime...
    99+
    2023-08-19
    java
  • Java中怎么解决关键字封锁问题
    Java中怎么解决关键字封锁问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实例方法中加入sychronized关键字封锁的是this对象本身,而在静态方法中加入sych...
    99+
    2023-06-17
  • Java中配置ElasticSearch集群环境账号密码问题怎么解决
    这篇“Java中配置ElasticSearch集群环境账号密码问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ja...
    99+
    2023-06-30
  • 怎么解决Struts Hibernate的整合问题
    这篇文章主要介绍“怎么解决Struts Hibernate的整合问题”,在日常操作中,相信很多人在怎么解决Struts Hibernate的整合问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决Str...
    99+
    2023-06-17
  • C++回溯算法中组合的相关问题怎么解决
    这篇文章主要讲解了“C++回溯算法中组合的相关问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++回溯算法中组合的相关问题怎么解决”吧!回溯算法模板void backtracki...
    99+
    2023-07-05
  • Java中properties文件编码问题怎么解决
    本文小编为大家详细介绍“Java中properties文件编码问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中properties文件编码问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • 怎么解决CSS崩溃的父母有浮动子女问题
    本篇内容介绍了“怎么解决CSS崩溃的父母有浮动子女问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 答...
    99+
    2024-04-02
  • shell字符串转数组空格问题怎么解决
    在Shell中,可以使用`IFS`(Internal Field Separator)环境变量来设置分隔符,从而将字符串转换为数组。...
    99+
    2023-05-13
    shell字符串转数组 shell
  • 怎么解决Web乱码的问题
    本篇文章为大家展示了怎么解决Web乱码的问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Web数据提交有两种方法:GET 和 POST。关于这两种方法的介绍,请看...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作