首页 > 试题广场 >

把数字翻译成字符串

[编程题]把数字翻译成字符串
  • 热度指数:168709 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。

现在给一串数字,返回有多少种可能的译码结果

数据范围:字符串长度满足 0 < n \leq 90
进阶:空间复杂度 ,时间复杂度
示例1

输入

"12"

输出

2

说明

2种可能的译码结果(”ab” 或”l”)  
示例2

输入

"31717126241541717"

输出

192

说明

192种可能的译码结果  
头像 牛客题解官
发表于 2022-04-22 12:43:45
精华题解 题目主要信息: 字母到数字分别为1-26映射,没有0 输入的数字是字符串,故非常大,超过了long long的表示范围 但凡出现11-19,21-26的就可能出现两种译码结果 求总后的译码结果种类 举一反三: 学习完本题的思路你可以解决如下题目: BM62.斐波那契数列 BM63.跳台阶 BM6 展开全文
头像 LaN666
发表于 2020-11-23 22:22:59
方法1: 递归:将大问题化解为小问题 public class Solution { public int solve (String nums) { return back(nums.toCharArray(), 0); } // 递归函数 publ 展开全文
头像 香芋派丶
发表于 2021-12-14 10:23:30
动态规划 ①分析题目:能够译码的数字不会大于26,即有效的译码范围为 [1,26]。 ②确定状态:以数组 "12345" 为例,首先要明确两点: 依题意可知,数组中所有的数字都必须参与译码,比如数组 "1234" 的某一种译码方式为 “1,2,3,4",那么当数组尾再添加一个元素 "5" 时,刚 展开全文
头像 泪无声呢
发表于 2021-07-23 17:58:36
把数组翻译成字符串 题目:把数字翻译成字符串 描述:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。现在给一串数字,返回有多少种可能的译码结果。注意到该题目中并未出现数字0对应的字母,当给定的数字串中出现0时,要根据其位置进行处 展开全文
头像 牛客482476822号
发表于 2021-10-06 17:15:51
思路:可以分为两种情况,一种情况是第i位可以独立编码,另一种情况是第i位可以和第i-1位字符组合进行编码。 import java.util.*; public class Solution { /** * 解码 * @param nums string字符串 数字串 展开全文
头像 每天学习一点
发表于 2021-12-15 20:39:23
使用动态规划的方法,但是其实不需要使用数组来保存所有的位置的情况,可以优化后,只用两个值保存前面两个字符的情况即可。 因为本题其实可以简化成“跳台阶”问题,就是可以是一步或者两步,只不过需要加些条件来处理而已 public class Solution { /** * 解码 展开全文
头像 CroMarmot
发表于 2022-02-02 05:38:21
把数字翻译成字符串(动态规划) 题意 给定一个数字串,它是由a-z映射成1-26得到的,问它的原文有多少种可能 思路分析 能被反向的条件 因为是a-z映射成1-26得到的 所以每个被反向映射的值一定在1-26之间 所以判断是1位还是2位,且值满足范围,没有前导0 能被反向的1位数 只有1-9可以被反 展开全文
头像 弄月流影
发表于 2020-12-24 00:59:54
解题思路动态规划有以下几种情况: 1. 当i-1=0,如果i-2=[1到2],dp[i]=dp[i-2];否则返回0; 2. 当i-1=[1到6],如果i-2=[1到2],dp[i]=dp[i-1]+dp[i-2]; 否则dp[i]=dp[i-1]; 3. 当i-1=[7到9],如 展开全文
头像 董个屁儿
发表于 2022-04-01 10:00:48
思路:动态规划,i + 1位存储i字符 例如:1223 1 - (1) 1种 12 - (1、2),(12) 2种 122 - (1、2、2),(12、2),(1、22) 3种 1223 - (1、2、2、3),(12、2、3),(1、22、3),(1、2、23),(12、23) 5种 以12【2】 展开全文
头像 牛客432959891号
发表于 2022-08-29 20:29:54
class Solution:     def solve(self , nums: str) -> int:        展开全文
头像 幸福的火龙果在干饭
发表于 2021-08-11 21:43:17
一、题目描述 题目描述:有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。现在给一串数字,返回有多少种可能的译码结果 二、算法1(暴力深搜) 解题思路 暴力枚举每一种翻译方式,最后统计方案数 每次递归考虑两种情况,当前位的数自成一位与下一位 展开全文