剑指Offer_46 把数字翻译成字符串
package 剑指Offer;public class LeetCode46_把数字翻译成字符串 {public static void main(String[] args) {//给定一个数字,我们按照如下规则把它翻译成字符串:0->a 1->b ... 25->z。问一个数字可能有多少种翻译?int n=12258;System.out.println(getTranslationCount(n));}//功能函数部分public static int getTranslationCount(int n){//思路:例如给定12258为例 我们有两种不同的选择来翻译第一个数字1,。第一种选择是数字1单独翻译成b 或者和第2个数字一起翻译,如果两者合并>=10&&<=25的话//剩下的就是对后面的进行递归//我们使用f(i)来表示第i位数字开始的不同翻译的数目。f(i)=f(i+1)+g(i,i+1)*f(i+2)。当两者合并满足翻译条件时 g(i,i+1)=1,否则为0if(n<0) return 0;String ns=String.valueOf(n);return translation(ns);}public static int translation(String ns){int len=ns.length();int [] sum=new int[ns.length()];int count=0;//从后往前递归查找for(int i=ns.length()-1;i>=0;i--){//如果当前处理的不是最后一位count=0;if(i<ns.length()-1){count=sum[i+1];}else{//最后一个count=1;}//两位数可以合并if(i<ns.length()-1){//合并int first=ns.charAt(i)-'0';int second=ns.charAt(i+1)-'0';int combine=first*10+second;//判断合并后的数字if(combine>=10&&combine<=25){if(i<ns.length()-2){//位于倒数第二位左边count+=sum[i+2];}else{count+=1;}}}sum[i]=count;}return sum[0];}
}
剑指Offer_46 把数字翻译成字符串相关推荐
- leetcode 剑指offer-46.把数字翻译成字符串
原题如下: 剑指offer-46.把数字翻译成字符串 2020年6月9日 每日一题 题解 方法一: 当我们考虑单个数字的时候,就只有一种翻译的结果,重要的是,我们遇到连续两个字母也可以翻译成字母,那么 ...
- 剑指offer46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串 难度:中等 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 ...
- 剑指Offer46——把数字翻译成字符串
[写在前面]:这道题并不难,但看到题解,发现,自己的代码略显笨拙啊,优秀大佬解题真的高,代码清晰明了,纪念一下差距感(自己递归,回溯还有待加强训练) 原题链接: 剑指 Offer 46. 把数字翻译成 ...
- 剑指offer.把数字翻译成字符串
题目: 给定一个数字,我们按照如下规则把他翻译成字符串:0翻译成a,1翻译成b--11翻译成l,--25翻译成z,一个数有多种翻译方法,可以把一个数里面的数字看作一位,也可以是两位. 思路: 这个题最 ...
- 把数字翻译成字符串python_剑指offer-46把数字翻译成字符串-python
<剑指offer>python实现系列,全目录 题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻译成"b",--,2 ...
- 剑指 Offer把数字翻译成字符串
题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 ...
- 【java】剑指offer46_把数字翻译成字符串
题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 ...
- 剑指offer把数字翻译成字符串
文章目录 一.先介绍一下青蛙跳台阶 二.本题思路及代码 总结 题目: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b", ...
- 【LeetCode】剑指 Offer 46. 把数字翻译成字符串
[LeetCode]剑指 Offer 46. 把数字翻译成字符串 文章目录 [LeetCode]剑指 Offer 46. 把数字翻译成字符串 package offer;public class So ...
- 【算法】剑指 Offer 46. 把数字翻译成字符串
1.概述 剑指 Offer 46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻 ...
最新文章
- Docker的安装和版本详细介绍
- 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么
- python基础教程:filter(),map()函数用法
- 自定义ArrayList
- 博客园是个大金矿,管理员不挖掘有些可惜:给博客园提一些双赢的建议
- PhantomJS 一个隐形的浏览器
- android正则判断两个符号之间,Android字母、数字、字符任意两种组合正则验证
- 谁在窥屏_TheShy直播被窥屏搞怕了,为了防止被窥屏,这个做法绝了
- 已知a类被打包在packagea_2021考研干货:199管理类联考综合逻辑归纳习题(1)
- CLR读书笔记--第三章 共享程序集和强命名程序集
- Cisco模拟器DHCP详细教程
- C语言基础知识(学习笔记)
- python上传百度云_python通过百度云api的方式上传或下载文件
- 腾讯云 接口验签 使用qcloud-java-sdk
- JS实现二叉树添加节点,删除节点操作
- 【元胞自动机】基于元胞自动机的人口疏散仿真matlab源码
- 打印出js对象里面的内容
- HAL库开发—基于stm32的智能小家电
- dfa 识别 正则表达式 0(0|1)*101
- java around_java - 使用Spring AOP时,在单个连接点上具有参数绑定的多个Around建议会导致错误 - 堆栈内存溢出...