当前位置: 首页 > news >正文

佛山企业网站设计公司网站变app

佛山企业网站设计公司,网站变app,wordpress无限加载瀑布流,企业营销推广策划一、题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits "23"输出…

一、题目描述

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

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

示例 1:

输入:digits = "23"

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

示例 2:

输入:digits = ""

输出:[]

示例 3:

输入:digits = "2"

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

来源:力扣(LeetCode)

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

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、运行结果

三、解题思路

这里是参考官方给出的解题思路,本人想的也是用回溯法,但是奈何不懂回溯怎么写org,仅以此博文记录,权当加深理解。

首先用一个哈希表将每个数字对应的字母串,然后进行回溯遍历,具体如下:

如果当前字母组合的长度和原数字串的长度相等,则表示已经得到了一个满足的字母组合,将该字母串加入到结果列表中;(递归出口)

如果不相等,表示还没有遍历完数字串,则取出当前下标的数字,根据数字从哈希表中取出其对应的字母串,获取这个字母串的长度(字母个数),然后对这个字母串的每个字母进行处理:

首先出去该字母,然后将该字母加入到作为参数传递的字母串后面,再递归对下一个数字进行同样的处理,最后是回溯(将当前字母从字母串中删除,避免重复遍历)。

ps: 回溯是通过递归实现的,所以最前面要定义递归出口,最重要的是在要在递归后面删掉当前字母,这就是回溯。

四、AC代码

class Solution {public List<String> letterCombinations(String digits) {int len = digits.length();List<String> ans = new ArrayList<>();if(len == 0) return ans;//双花括号初始化 匿名内部类 初始化块Map<Character, String> numMap = new HashMap<>(){{put('2', "abc");put('3', "def");put('4', "ghi");put('5', "jkl");put('6', "mno");put('7', "pqrs");put('8', "tuv");put('9', "wxyz");}};StringBuffer sb = new StringBuffer();trackback(digits, numMap, ans, 0, sb);return ans;}//回溯(用递归的方式实现)public void trackback(String digits, Map<Character, String> phoneMap, List<String> ans, int index, StringBuffer sb){if(index == digits.length()){ans.add(sb.toString());} else {char num = digits.charAt(index);String letters = phoneMap.get(num); //当前数字对应的字母串int letCount = letters.length(); //当前数字对应的字母个数for(int i=0; i<letCount; ++i){char c = letters.charAt(i);sb.append(c);  //加入当前字母trackback(digits, phoneMap, ans, index+1, sb);  //递归处理下一个数字sb.deleteCharAt(index); //回溯}}}
}
http://www.yayakq.cn/news/925941/

相关文章:

  • 当当网站建设目标邹平做网站
  • it公司做网站用什么软件重庆学校网站推广
  • 普通网站服务器广州代理记账
  • 杭州网站设计步骤md5(wordpress)
  • 公司做网站费用沈阳网站 房小二
  • 乐清手机网站设计网站cms建设
  • 东营 微信网站建设盐城 网络推广
  • ps制作网站效果图自己怎么做一个小程序
  • 网站开发英语英语微信微网站是什么格式的
  • 做面点的网站贵州网站建设吧
  • 网站维护页面模板网站为什么做重定向
  • 廊坊怎么做网站安徽省建筑信息平台
  • 网站内容建设需要注意哪些问题中山手机网站建设电话
  • 重庆潼南网站建设价格移动网上营业厅官网
  • 南宁营销网站建设室内设计网站哪些号
  • 网站开发者常见问题wordpress好玩的插件
  • 管理手机网站wordpress大淘客
  • 做家装的网站有哪些内容公司建设网站的分录
  • 联派网站建设宽屏网站和普通网站
  • php商城网站建设多少钱湖南旅游十大必去景区
  • 金华义乌网站建设微信网页版怎么扫描二维码
  • 有什么好的书写网站seo工程师
  • 网站建设的实验原理和方法描述出你要建设网站的主题
  • 广州外贸网站建设公司猪八戒网站做推广怎么样
  • 建网站有什么要注意的会计网站建设意义
  • 网站建设合同属于什么税目网页qq空间
  • 滁州58同城网站怎么做定州哪里可以做网站
  • 为什么网站收录在百度突然没有了北京网站制作策划
  • 云空间提供网站合肥市建设局
  • 东营优化网站个人公司怎么样注册公司