原题如下:

剑指offer-46.把数字翻译成字符串
2020年6月9日 每日一题

题解

方法一:

当我们考虑单个数字的时候,就只有一种翻译的结果,重要的是,我们遇到连续两个字母也可以翻译成字母,那么我们不妨建立一个数组ans[l+1],l为数字长度,来记录前n位的数字可以组成的答案种类,数组长度为数字长度多1,很明显ans[0]=ans[1]=1;我们从ans[2]来开始考虑,其实也是考虑一般状况下的ans[n]。假如末两位的组成是10到25的数字,那么我们在组成前n位答案时,后两位连起来考虑,其实答案种数就是ans[n-2],而如果后两位分开考虑,其实答案的种数就是前(n-1)位又添加了一位数字的种数,跟ans[n-1]应该一样,总的结果数就是ans[n-2]+ans[n-1];倘若假如末两位的组成不是10到25的数字,那么很简单就是前(n-1)位又添加了一位数字的种数,就是ans[n-1]
本答案java实例如下:

/**作者@v7fgg*执行用时 :5 ms, 在所有 Java 提交中击败了13.30%的用户*内存消耗 :36.5 MB, 在所有 Java 提交中击败了100.00%的用户*2020年6月9日 8:03*/
class Solution {public int translateNum(int num) {String s=num+"";int l=s.length();if(l<2){return 1;}int ans[]=new int[l+1];ans[0]=1;ans[1]=1;for(int i=2;i<=l;i++){String str=s.substring(i-2,i);int j=Integer.parseInt(str);if(j>=10&&j<=25){ans[i]=ans[i-2]+ans[i-1];continue;}ans[i]=ans[i-1];}return ans[l];}
}

另外,在处理数字的时候 ,技巧有

1、不用数组,而采用三个临时变量,节省空间;
2、获取末尾数字时,采用取模的方式,节省空间;
3、从右往左遍历,效果一样

以上思路参考资料:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/solution/mian-shi-ti-46-ba-shu-zi-fan-yi-cheng-zi-fu-chua-6/

leetcode 剑指offer-46.把数字翻译成字符串相关推荐

  1. leetcode 剑指 Offer 46. 把数字翻译成字符串

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

  2. 126. Leetcode 剑指 Offer 46. 把数字翻译成字符串 (动态规划- 字符串系列)

    class Solution:def translateNum(self, num: int) -> int:nums = str(num)n = len(nums)#异常情况if n < ...

  3. 【LeetCode】剑指 Offer 46. 把数字翻译成字符串

    [LeetCode]剑指 Offer 46. 把数字翻译成字符串 文章目录 [LeetCode]剑指 Offer 46. 把数字翻译成字符串 package offer;public class So ...

  4. 剑指 Offer 46. 把数字翻译成字符串(动态规划+回溯+递归 解法)

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

  5. 【算法】剑指 Offer 46. 把数字翻译成字符串

    1.概述 剑指 Offer 46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻 ...

  6. 【LeetCode笔记】剑指 Offer 46. 把数字翻译成字符串(Java、字符串、动态规划、DFS)

    文章目录 题目描述 思路 && 代码 1. 动态规划做法 2. DFS 做法 二刷 打卡第六天~继续加油! 题目描述 万物皆可爬楼梯.-和爬楼梯原理很像,都是使用动态规划的做法来做~ ...

  7. Leetcode刷题笔记——剑指 Offer 46. 把数字翻译成字符串(中等)

    文章目录 题目描述 解法:动态规划 方法一:字符串遍历 复杂度分析 C++代码实现 方法二:数字求余 复杂度分析 C++代码实现 参考链接 题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 ...

  8. 剑指 Offer 46. 把数字翻译成字符串

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

  9. 【千字分析】剑指 Offer 46. 把数字翻译成字符串

    我是小张同学,立志用更简洁的代码做更高效的表达 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 & ...

  10. 【剑指 Offer 46. 把数字翻译成字符串】【剑指 Offer 10- II. 青蛙跳台阶问题】【198. 打家劫舍】【动态规划】

    青蛙跳台阶,打家劫舍,字母相同编码三道题思路总结 总结我自己思路的,写的不详细,想看详细的可以跳转到我加的链接,都是力扣上同一个人写的题解,很厉害. 字符串翻译数字 字符串翻译数字 当最后一位数字单独 ...

最新文章

  1. 176页报告辟谣自动化时代的就业危机(附下载)
  2. SpringBoot中使用常量类来判断对象某属性的值是否包含在指定集合中
  3. Java Web之文件的上传及下载
  4. OSChina 周三乱弹 —— 爸爸说,这个是从他硬盘里掉出来的
  5. (转)Spring Boot 日志配置(超详细)
  6. 31.QT中串口操作
  7. Transactional ejb 事务陷阱
  8. jquery中ajax应用中的通用ajax()函数
  9. Altium design 的smart pdf 打印不出汉字来。
  10. mysql与sim900a_sim900a和sim800a的区别是什么
  11. Kubelet cAdvisor 资源监控
  12. 一个亿,啪一下就没了!
  13. JavaWeb——会话追踪之Cookie和Session
  14. 用canvas制作的躲避球小游戏html5源码
  15. 项目管理过程之进度控制
  16. HashMap中的bucket介绍
  17. 【实例】Python tkinter 实例 桌面便签
  18. 时间格式2020-09-29T18:02:02.000Z转换为“年月日时分秒“
  19. 即插即用 | Fast-ParC:CNN和ViT通用Trick!即插即涨,即提速!
  20. 自动给好友发送新春祝福的java脚本

热门文章

  1. Python 字典类型转换json格式
  2. 单片机电梯上下行_为什么未来的电梯会移动得不仅仅是上下。
  3. 看完 GitHub 上这几个奇葩项目后,我忍不住笑了 233333
  4. Mairadb数据库基本操作之数据管理
  5. VR技术成为国家新基建项目主力军
  6. P2887 [USACO07NOV]防晒霜
  7. 前端MD5加密------js-md5
  8. 极光推送:java后台向APP推送消息(android,ios极光推送消息)
  9. 在移动设备上实时执行的DNN权重修剪中缺失但令人满意的稀疏性
  10. gem意思_出道10年,很多人不知道邓紫棋英文名GEM背后含义