java 三个字母组合_每天AC系列(三):电话号码的字母组合
1 题目
Leetcode第17题。 数字2-9映射字母,给出一个包含字符串的数字,列出字母的所有组合。
2 递归
拿到这样的题目想到了递归实现,创建一个Map映射对应的字母,然后把它传给递归函数,同时创建一个临时变量temp,保存每一次添加字母的结果,递归的结束条件是数字串的长度为0.
public void one(String digits,List result,HashMap ss,String temp)
{
if(digits.length() > 0)
{
String s = ss.get((int)(digits.charAt(0))-48);
for(int i=0;i
one(digits.substring(1),result,ss,temp+s.charAt(i));
}
else
result.add(temp);
}
3 提交
直接一次AC.
4 优化
其实可以不需要Map的,可以直接使用一个字符串数组,因为是数字到字符串的映射,对于数字可以用下标代替。其次,为了更快的速度可以使用StringBuilder代替String.
还有就是用下标代替了截断digits,对于digits其实没必要使用截断,只需要一个下标表示范围即可,对于StringBuilder,因为没有像String这样的+,因此需要在使用append后对其进行删除处理。
public void one(String digits,int index,StringBuilder temp)
{
if(index < digits.length())
{
String d = s[digits.charAt(index)-'0'];
for(int i=0;i
{
one(digits,index+1,temp.append(d.charAt(i)));
temp.deleteCharAt(index);
}
}
else
result.add(temp.toString());
}
5 源码
java 三个字母组合_每天AC系列(三):电话号码的字母组合相关推荐
- leetcode系列--17.电话号码的字母组合
leetcode系列–第17题.电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合.答案可以按 任意顺序 返回. 给出数字到字母的映射如下(与电话按键相同).注意 1 ...
- 三点估算法_详解:三点估算法
经常有人调侃:PMP老玩文字游戏,来当语文老师吧!可是,语文不重要吗? 不光语文重要啊,数学也重要.先来三道题目试试: 1. 为了制作项目原型,项目经理必须采购三盎司的黄金.当前的市场价值为每盎司 1 ...
- java search 不能使用方法_ElasticSearch实战系列三: ElasticSearch的JAVA API使用教程
前言 在上一篇中介绍了ElasticSearch实战系列二: ElasticSearch的DSL语句使用教程---图文详解,本篇文章就来讲解下 ElasticSearch 6.x官方Java API的 ...
- java字符编码问题_JAVA字符编码系列三:Java应用中的编码问题
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- 我的世界java下载慢怎么办_只需要这三步,用Java也能图片识别
作者:不学无数的程序员 最近闲来无事研究了一下用 Java 如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于 Java 如何进行图片识别验证码,由于根据网上查找的相 ...
- mac 查看mysql是否安装_[简明核心系列] 三分钟Mac安装MySQL教程
作者: @向三 高质量学习 QQ 群: 1021386120 自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 文章结构: 前言 安装 HomeBre ...
- java 二叉堆_二叉堆(三)之 Java的实现
概要 前面分别通过C和C++实现了二叉堆,本章给出二叉堆的Java版本.还是那句话,它们的原理一样,择其一了解即可. 二叉堆的介绍 二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两 ...
- java自定义findbugs规则_静态代码扫描 (三)——FindBugs 自定义规则入门
准备工作 由于 FindBugs 是分析编译后的 class 文件,也就是字节码文件.我们需要了解 FindBugs 底层的处理机制.根据FindBugs 官网文档描述,FindBugs 使用了BCE ...
- java 常用 函数式接口_「java8系列」神奇的函数式接口
前言 在上一篇Lambda的讲解中我们就提到过函数式接口,比如:Consumer consumer = (s) -> System.out.println(s);其中Consumer就是一个函数 ...
最新文章
- 计算机应用基础怎么教作业,北京语言大学网络教育2017春计算机应用基础作业(1)及答案...
- 洛谷P2501数字序列 动态规划
- 在Linux-0.11中实现基于内核栈切换的进程切换
- python 关键字 with_Python 中的with关键字使用详解
- 八大算法思想(二)------------------递归算法
- myBatis association的两种形式
- 整理struct sockaddr和struct sockaddr_in
- Android Studio 自定义字体显示英文音标
- Gbase与oracle数据库的区别
- 关于Vue SSR不可不知的问题
- android 文件下载地址 http,android文件下载代码
- PHP上传视频到阿里云oss
- 电商直播的直播类型有哪些?
- Oracle 精编实用手册
- 是用JDBC从数据库中获取数据并以java对象返回
- 安全模式怎么更改计算机用户,电脑怎么关闭安全模式步骤详解
- java conversion_java 基本数据类型之间的转换(Conversion between Java basic data types).doc...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(下)
- 以外派的身份进大厂,或许条程序员升级的途径
- 在长沙参保,但是省内外地已经制作了社保卡,要如何处理?
热门文章
- ps切片工具里没有html,PS切片工具怎么用?PS切片工具的使用方法
- python智力问答游戏代码,python实现智力问答测试小程序
- html 复选框 不能编辑,javascript-jqGrid-复选框编辑无法编辑所选行
- MySQL:日期和时间函数
- 用UltraISO制作Ubuntu_18.04U盘启动盘
- 父向子通信(propos基本用法/驼峰命名问题)
- 【深度学习】实例分割网络
- 解决前端警告: Warning: Failed prop type: Invalid prop value of type number supplied to Textinput
- numpy中的ndarray方法和属性
- cygwin安装linux教程,Cygwin,让你拥有Windows下的Linux环境