【剑指offer】面试题46. 把数字翻译成字符串(java)
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
示例 1:
输入: 12258
输出: 5
解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
提示:
0 <= num < 231
代码:
class Solution {
public int translateNum(int num) {
if(num<0)
{
return 0;
}
if(num<10)
{
return 1;
}
int n=num,k=0;
while(n!=0)
{
k++;
n/=10;
}
k--;
int dp[] = new int[k+1];
dp[0]=1;
StringBuilder sb = new StringBuilder();
for(int i=k;i>=0;i--)
{
int x = (int)((num/Math.pow(10,i))%10);
// System.out.println(x);
sb.append(x);
}
//System.out.println(k+" "+sb);
if(k>=1)
{
if(sb.charAt(0)=='1'||(sb.charAt(0)=='2'&&sb.charAt(1)<'6'))
dp[1]=2;
else
dp[1]=1;
}
else
{
dp[1] = 1;
}
for(int i=2;i<=k;i++)
{
if(i>1)
{
if(sb.charAt(i-1)=='0'||sb.charAt(i-1)>'2')
{
dp[i] = dp[i-1];
}
else if(sb.charAt(i-1)=='2'&&sb.charAt(i)>='6')
{
dp[i] = dp[i-1];
}
else
{
dp[i] = dp[i-2]+dp[i-1];
}
}
}
return dp[k];
}
}
【剑指offer】面试题46. 把数字翻译成字符串(java)相关推荐
- 剑指Offer - 面试题46. 把数字翻译成字符串(DP)
1. 题目 给定一个数字,我们按照如下规则把它翻译为字符串: 0 翻译成 "a" , 1 翻译成 "b",--, 11 翻译成 "l",-- ...
- leetcode面试题46. 把数字翻译成字符串
leetcode面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:**0 翻译成 "a" ,1 翻译成 "b",--,11 翻译 ...
- leetcode刷题-面试题46. 把数字翻译成字符串
面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l& ...
- 把数字翻译成字符串python_LeetCode 面试题46. 把数字翻译成字符串 | Python
面试题46. 把数字翻译成字符串 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 " ...
- [剑指 offer] -- 动态规划-- 面试题46. 把数字翻译成字符串
1 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,2 ...
- leetcode面试题46. 把数字翻译成字符串/典型的青蛙跳台阶题目(递归),动态规划
文章目录 题目 基本思想 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l&q ...
- 面试题46. 把数字翻译成字符串
链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/ 题解:https://leetcode-cn. ...
- 力扣 面试题46. 把数字翻译成字符串 dp
https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/ 思路:为了方便,我们把输入转换成一个字符串,并且下标 ...
- leetcode 题库46. 把数字翻译成字符串
面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l& ...
最新文章
- Python20-Day05
- 一个课题组两篇Cell发布病毒与宿主相互作用重要研究
- pytorch 扩展张量
- apache设置网页gzip压缩(亲测可用)
- 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
- postgresql - mac 启动 关闭 postgresql
- why SAP Fiori action sheet is created as disabled by default
- PMP答题技巧(详细版)
- TensorFlow4-常量和变量及TensorBoard使用
- 利用Enterprise Library中的DAAB构造的数据库访问架构
- WMI 错误 10的解决
- Autodesk MapGuide Enterprise 2012开发技术入门培训视频录像下载
- 字节跳动面试分享:java从入门到精通第五版答案位置
- 学习通网页版无法粘贴至提交答案框的解决方法
- (附源码)Python在线办公系统 毕业设计 071116
- IP种子——网络安全的重要组成部分
- 链接脚本(Linker Script)用法解析(二) clear_table copy_table
- BLE蓝牙的连接和配对过程
- 整理常用的PHP函数
- Android 讯飞语音识别功能开发
热门文章
- LeetCode 835. 图像重叠
- LeetCode 1296. 划分数组为连续数字的集合(map模拟)
- 剑指Offer - 面试题46. 把数字翻译成字符串(DP)
- 程序员面试金典 - 面试题 16.01. 交换数字(位运算swap)
- linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
- 上下伸缩代码_CQRS之旅——旅程4(扩展和增强订单和注册限界上下文)
- ios html高度自适应,iOS UILabel高度自适应终结篇
- 整理总结一下:git恢复本地误删除的分支
- Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解
- 头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计