啦迩 发表于 2026-1-29 10:05:02

剑指offer-70、把数字翻译成为字符串

题⽬描述

有⼀种将字⺟编码成数字的⽅式:'a'->1, 'b->2', ... , 'z->26'。
现在给⼀串数字,返回有多少种可能的译码结果
示例1
输⼊:"12"
返回值:2
说明:2种可能的译码结果(”ab” 或”l”)
示例2
输⼊:"31717126241541717"
返回值:192
说明:192种可能的译码结果
仔细观察,就会发现上⾯的编码从 1 到 26,也就是可能⼀次译码使⽤是 1 位,也可能是⼀次译码⽤了 2位,⽐如 12 ,可以第⼀次⽤ 1,2 分开分别译码,也可以把 1,2 合并起来进⾏译码。
思路及解法

暴力递归

假设⼀个字符是S,第⼀次拆解就有两种情况,然后分别对后⾯的部分分别译码,使⽤递归即可:

public class Solution46 {   public int solve (String nums) {           return recursion(nums.toCharArray(), 0);   }         public int recursion(char[] nums, int start){         if(start == nums.length){                 return 1;         }                  if(nums == '0')                 return 0;                  // 使⽤⼀位字符译码         int count1 = recursion(nums,start+1);         int count2 = 0;         // 符合两位字符的译码         if((start < nums.length-1) && (nums == '1' || (nums == '2' &&nums = 10 && twoDigits

焦和玉 发表于 2026-1-30 05:44:58

过来提前占个楼

魄柜 发表于 2026-2-6 07:29:09

感谢分享,学习下。

厨浴 发表于 2026-2-8 04:33:54

感谢发布原创作品,程序园因你更精彩

穆望 发表于 2026-2-9 00:18:41

感谢,下载保存了

佟棠华 发表于 2026-2-10 17:59:03

不错,里面软件多更新就更好了

尤晓兰 发表于 2026-2-10 18:16:11

东西不错很实用谢谢分享

埤兆 发表于 2026-2-11 07:08:22

鼓励转贴优秀软件安全工具和文档!

兜蛇 发表于 2026-2-12 02:41:56

东西不错很实用谢谢分享

诀锺 发表于 2026-2-13 06:15:52

感谢分享,下载保存了,貌似很强大

悯拄等 发表于 2026-2-26 08:22:01

喜欢鼓捣这些软件,现在用得少,谢谢分享!

哈妙思 发表于 2026-3-11 04:34:36

很好很强大我过来先占个楼 待编辑

俞秋荣 发表于 前天 22:54

感谢分享
页: [1]
查看完整版本: 剑指offer-70、把数字翻译成为字符串