1. 题目

给定一个数字,我们按照如下规则把它翻译为字符串:
0 翻译成 “a” ,
1 翻译成 “b”,……,
11 翻译成 “l”,……,
25 翻译成 “z”。

一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

示例 1:
输入: 12258
输出: 5
解释: 12258有5种不同的翻译,
分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:
0 <= num < 2^31

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 动态规划,类似斐波那契数列
  • dp[i] 表示翻译第 i 位字符时的方案数
  • dp[0] 空串方案数 1
  • dp[1] 第一位数只有1种翻译
  • str[i-2]=='1' ||(str[i-2]=='2' && str[i-1] <='5'),可以2个字符翻译2个,也可以合并
  • 其余情况,只能单独翻译成1个
class Solution {public:int translateNum(int num) {string str = to_string(num);int i, n = str.size();int dp[n+1] = {0};dp[0] = 1;//第0个字符空串dp[1] = 1;//第一个字符翻译,只有1种可能for(i = 2; i <= n; ++i){if(str[i-2]=='1' ||(str[i-2]=='2' && str[i-1] <='5'))//该种情况,可以把这两位数,翻成1个或者2个字符dp[i] = dp[i-2]+dp[i-1];else//34,29,只能单独翻译dp[i] = dp[i-1];}return dp[n];}
};

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

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

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

  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. 把数字翻译成字符串(java)

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

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

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

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

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

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

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

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

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

最新文章

  1. element vue 动态单选_软件更新丨vue-element-admin 4.0.0 beta 发布,后台集成方案
  2. 6、通过xpath获取网页数据
  3. PAT乙级全套超详细题解【建议收藏】
  4. 项目由于装运点不同交货拆分解决方案
  5. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字
  6. java向应用程序传递参数_Java应用程序中的消息传递主体
  7. Django - Form和ModelForm
  8. 服务器可以装2个系统吗,云服务器可以装多个系统吗
  9. Permutation(构造+思维)
  10. Python datetime time
  11. yconsole使用说明
  12. python禁用键盘鼠标_在Python中禁用或锁定鼠标和键盘?
  13. 车内看车头正不正技巧_交规理论最全技巧口诀,学会后100%过关!
  14. 用通俗易懂的方式讲解: GBDT算法及案例(Python 代码)
  15. Android开发学习总结——appcompat_v7项目说明
  16. idea调试jdk源码
  17. 计算机专业英语单词完美打印,计算机专业英语词汇(完美排版_大容量打印版).pdf...
  18. UE4动画蒙太奇位移
  19. CVPR 2021 | 目标引导的人类注意力估计提升零样本学习
  20. Python 10个项目创意

热门文章

  1. ubuntu14.04安装 R16 Tina Linux SDK
  2. elasticsearch java_java Elasticsearch详细介绍及使用实例分析
  3. Django之项目搭建和配置总结(一)
  4. poj 3469(网络流模版)
  5. struts2异常处理
  6. 从根本上解决 Infopath 2010 重复表的序号问题
  7. 对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
  8. SensorKernel层框架分析
  9. 被LCD调戏睡不着了
  10. Linux 内核红黑树分析