17. Letter Combinations of a Phone Number

1 题目理解

给定一个字符串string,字符范围是[2,9]之间的数字。数字表示电话上的一个按钮。返回字符串的可能所有组合方式。每个数字对应的字母如下图所示。
在这里插入图片描述
Example 1:

Input: digits = “23”
Output: [“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]
Example 2:

Input: digits = “”
Output: []
Example 3:

Input: digits = “2”
Output: [“a”,“b”,“c”]

2 回溯

用回溯的方法可以解决。每次处理一个数字,每个数字对应3-4种转换。
这里我自己的一个小技巧是:dfs函数中的变量都是与状态相关的。其他变量都作为成员变量。这样可以更关注dfs过程中的状态。

class Solution {private Map<Character,String> map = 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");}};private String digits;private List<String> answer;public List<String> letterCombinations(String digits) {answer = new ArrayList<String>();if(digits.length()==0) return answer;StringBuilder str = new StringBuilder();this.digits = digits;dfs(0,str);return answer;}private void dfs(int index,StringBuilder str){if(index == digits.length()){answer.add(str.toString());}else{String value = map.get(digits.charAt(index));for(int i=0;i<value.length();i++){str.append(value.charAt(i));dfs(index+1,str);str.setLength(str.length()-1);}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第九十四期:GitHub 发布 2019 年年度报告

GitHub 发布了 2019 年年度报告《The State of the Octoverse》&#xff0c;下边来看看一些主要数据。 作者&#xff1a;佚名 GitHub 发布了 2019 年年度报告《The State of the Octoverse》&#xff0c;下边来看看一些主要数据。 全球用户超过 4 千万 目前 GitHub 上有超过…

COM 组件设计与应用(十一)

COM 组件设计与应用&#xff08;十一&#xff09;IDispatch 及双接口的调用作者&#xff1a;杨老师 下载源代码一、前言 前段时间&#xff0c;由于工作比较忙&#xff0c;没有能及时地写作。其间收到了很多网友的来信询问和鼓励&#xff0c;在此一并表示感谢。咳......我也需…

冒泡排序 和 归并排序

时间复杂度O&#xff08;nlog2n&#xff09; 归并排序&#xff1a; void Merge(int l,int mid,int r){ int il,jmid1,k0; while(i<mid && j<r) { if(a[i]>a[j]) { t[k]a[j]; cntmid-i1; } else …

39. Combination Sum

文章目录1题目理解2 回溯分析3 40. Combination Sum II3.1 延续39解题思路3.2 新思路3.3 递归计数的方式4 216. Combination Sum III1题目理解 Given an array of distinct integers candidates and a target integer target, return a list of all unique combinations of ca…

第九十五期:Python帮你识破双11的套路

一年一度的“双十一”又要来了&#xff0c;很多人已经开始摩拳擦掌&#xff0c;毕竟几天之后手还在不在就不好说了。 作者&#xff1a;清风小筑 各种社交软件也是跟着遭殃&#xff0c;整天就是“来帮我一起盖楼”&#xff0c;各种字体绕过屏蔽&#xff0c;什么奇葩的脑洞也出来…

客户端独立弹出详细的实现过程

拷贝粘贴以下代码段&#xff0c;保存为html文件&#xff0c;试试看效果如何吧。。。前几天贴子没写东西就搁在上面搁了几天&#xff0c;真不好意思。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ><HTML><HEAD></HEAD>&…

Unity3D性能优化之Draw Call Batching

在屏幕上渲染物体&#xff0c;引擎需要发出一个绘制调用来访问图形API&#xff08;iOS系统中为OpenGL ES&#xff09;。每个绘制调用需要进行大量的工作来访问图形API&#xff0c;从而导致了CPU方面显著的性能开销。Unity在运行时可以将一些物体进行合并&#xff0c;从而用一个…

第九十六期:JavaScript 中的 4 个相等比较算法的介绍

JavaScript 运算中&#xff0c;一共包含 4 个相等比较算法&#xff1a;抽象相等比较&#xff1b;严格相等比较&#xff1b;SameValueZero&#xff1b;SameValue。 作者&#xff1a;zhangbao90s JavaScript 运算中&#xff0c;一共包含 4 个相等比较算法&#xff1a; 抽象相等…

VC6下使用WebLink控件

这是今年6月7号我的一篇日志&#xff0c;好像还有些参考价值&#xff0c;誊到blog上来吧。 最终我在VC6下面搞定了WebLink&#xff0c;与以往一样&#xff0c;论坛和MSDN是我最大的帮手。在ESRI官方论坛那可怜的四五个关于VC6WebLink的帖子中&#xff0c;我找到了困扰我多天的问…

建行B2B支付回调参数乱码现象解析

建行B2B支付采用Java开发&#xff0c;页面回调采用POST提交方式&#xff0c;编码为GBK。而我们的系统为ASP.NET&#xff0c;编码UTF-8。通过Request获取的参数是乱码&#xff0c;无奈之下&#xff0c;只能从InputStream解析。解析代码如下&#xff1a;log.Debug("Request …

77. Combinations

文章目录1 题目理解2 回溯1 题目理解 Given two integers n and k, return all possible combinations of k numbers out of 1 … n. You may return the answer in any order. 输入&#xff1a;两个int n和k。 规则&#xff1a;从1到n&#xff0c;n个数选择k个数&#xff0…

第九十七期:新版Kite:实时补全代码,Python之父都发声力挺!

不久前&#xff0c;一个免费的专门针对 Python 的代码补全工具 Kite&#xff0c;有了新的动态。 作者&#xff1a;杨鲤萍 本文转自雷锋网&#xff0c;如需转载请至雷锋网官网申请授权。 不久前&#xff0c;一个免费的专门针对 Python 的代码补全工具 Kite&#xff0c;有了新…

svn 版本升级的问题

原创文章&#xff0c;转载请注明 svn本地版本由1.6升级到1.7后&#xff0c;再使用时遇到一些问题&#xff0c;这里记录一下以备忘。 升级后&#xff0c;使用任何命令 不能用了&#xff0c;提示的意思大致是本地的workcopy版本太低了&#xff08;之前用1.6版本&#xff0c;check…

[JavaME]手机申请移动分配的动态IP(3)?

获取IP后是否可以和它通讯呢&#xff1f;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />Hi&#xff0c;继续上回的讨论《[JavaME]手机是否能够申请到动态IP[2]?》。 上回说到申请动态IP是可以了&#xff0c;并且准备好了一个线…

78. Subsets

文章目录1 题目理解2 回溯90 subset II方式一代码方式三代码1 题目理解 Given an integer array nums, return all possible subsets (the power set). The solution set must not contain duplicate subsets. 输入&#xff1a;int数组nums 输出&#xff1a;返回所有可能的子数…

第九十八期:TIOBE11月榜单:C、Swift、Go、D与Rust起起伏伏

TIOBE 指数并不代表语言的好坏&#xff0c;开发者可以使用该榜单检查自身的编程技能是否需要更新&#xff0c;或者在开始构建新软件时对某一语言做出选择。 作者&#xff1a;oschina TIOBE 公布了 11 月份编程语言排行榜。 本月前 20 名中有一些有趣的现象&#xff0c;先看看…

Vue 之 slot(插槽)

前言&#xff1a; vue中关于插槽的文档说明很短&#xff0c;语言又写的很凝练&#xff0c;再加上其和methods&#xff0c;data&#xff0c;computed等常用选项在使用频率、使用先后上的差别&#xff0c;这就有可能造成初次接触插槽的开发者容易产生“算了吧&#xff0c;回头再学…

sharepoint安装心得_过程

sharepoint安装心得_过程 我是新手,没有接触过sharepoint以前,所有在安装方面吃了一些亏 下面说一下正确的顺序: windows 2003 域服务器(ad) vs.net(如果需要的话,但不要装windows的frontpage的扩展,虽然.net需要,不装亦可) sqlserver 2000(sp3) sharepoint server 2003卸载顺序…

46. Permutations

文章目录1题目理解2 回溯3 47. Permutations II1题目理解 Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order. 输入&#xff1a;整数数组nums&#xff0c;所有元素不相同 输出&#xff1a;数组的所有…

第九十九期:可以编写代码的代码:代码生成的利与弊

代码生成的当前状态是无处不在的&#xff08;2019年春季&#xff09;。REST API的数量激增&#xff0c;导致在过去十年中针对各种编程语言和环境开发的API客户端生成器种类繁多。 作者&#xff1a;约翰麦克马洪 代码生成的当前状态 代码生成的当前状态是无处不在的&#xff0…