给定一个数字,我们按照如下规则把它翻译为字符串: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)相关推荐

  1. 剑指Offer - 面试题46. 把数字翻译成字符串(DP)

    1. 题目 给定一个数字,我们按照如下规则把它翻译为字符串: 0 翻译成 "a" , 1 翻译成 "b",--, 11 翻译成 "l",-- ...

  2. leetcode面试题46. 把数字翻译成字符串

    leetcode面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:**0 翻译成 "a" ,1 翻译成 "b",--,11 翻译 ...

  3. leetcode刷题-面试题46. 把数字翻译成字符串

    面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l& ...

  4. 把数字翻译成字符串python_LeetCode 面试题46. 把数字翻译成字符串 | Python

    面试题46. 把数字翻译成字符串 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 " ...

  5. [剑指 offer] -- 动态规划-- 面试题46. 把数字翻译成字符串

    1 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,2 ...

  6. leetcode面试题46. 把数字翻译成字符串/典型的青蛙跳台阶题目(递归),动态规划

    文章目录 题目 基本思想 题目 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l&q ...

  7. 面试题46. 把数字翻译成字符串

    链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/ 题解:https://leetcode-cn. ...

  8. 力扣 面试题46. 把数字翻译成字符串 dp

    https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/ 思路:为了方便,我们把输入转换成一个字符串,并且下标 ...

  9. leetcode 题库46. 把数字翻译成字符串

    面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l& ...

最新文章

  1. Python20-Day05
  2. 一个课题组两篇Cell发布病毒与宿主相互作用重要研究
  3. pytorch 扩展张量
  4. apache设置网页gzip压缩(亲测可用)
  5. 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】
  6. postgresql - mac 启动 关闭 postgresql
  7. why SAP Fiori action sheet is created as disabled by default
  8. PMP答题技巧(详细版)
  9. TensorFlow4-常量和变量及TensorBoard使用
  10. 利用Enterprise Library中的DAAB构造的数据库访问架构
  11. WMI 错误 10的解决
  12. Autodesk MapGuide Enterprise 2012开发技术入门培训视频录像下载
  13. 字节跳动面试分享:java从入门到精通第五版答案位置
  14. 学习通网页版无法粘贴至提交答案框的解决方法
  15. (附源码)Python在线办公系统 毕业设计 071116
  16. IP种子——网络安全的重要组成部分
  17. 链接脚本(Linker Script)用法解析(二) clear_table copy_table
  18. BLE蓝牙的连接和配对过程
  19. 整理常用的PHP函数
  20. Android 讯飞语音识别功能开发

热门文章

  1. LeetCode 835. 图像重叠
  2. LeetCode 1296. 划分数组为连续数字的集合(map模拟)
  3. 剑指Offer - 面试题46. 把数字翻译成字符串(DP)
  4. 程序员面试金典 - 面试题 16.01. 交换数字(位运算swap)
  5. linux server.xml日志参数,Linux Log4j+Kafka+KafkaLog4jAppender 日志收集
  6. 上下伸缩代码_CQRS之旅——旅程4(扩展和增强订单和注册限界上下文)
  7. ios html高度自适应,iOS UILabel高度自适应终结篇
  8. 整理总结一下:git恢复本地误删除的分支
  9. Matplotlib - 柱状图、直方图、条形图 bar() barh() 所有用法详解
  10. 头条Java后台3面(含答案):事务+List集合+慢查询SQL+Redis+秒杀设计