剑指 Offer 46. 把数字翻译成字符串 Offer_46 题目描述 题解分析 本题的解题思路是使用动态规划,首先得出递推公式如下 dp[i] = dp[i-1]+dp[i-2](如果s[i-1]+s[i]可以形成合法的数字:10-25) dp[i] = dp[i-1](如果s[i-1]+s[i]不能形成合法的数字:小于10或者大于25) 动态规划要注意数组的大小,需要多开一个元素的空间. java代码 package com.walegarrett.offer; /** * @Author…
题目 剑指 Offer 46. 把数字翻译成字符串 思路1(递归,自顶向下) 这题和青蛙跳台阶很类似,青蛙跳台阶说的是青蛙每次可以跳一层或者两层,跳到第 n 层有多少种解法,而这题说的是讲数字翻译成字符串,每次可以翻译一个或者两个,但是翻译两个的时候还要判断是否为有效的,像 01.02 这种的数字就是无效的,同时超过 25 也是无效的,因此这些不能被翻译.然后我们可以得出状态转移方程: \[dp[i] = \begin{cases} dp[i-1]+dp[i-2] & ,前两个数字组成的结果在1…
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻译成"b",……,11翻译成"l",……,25翻译成"z".一个数字可能有多个翻译.例如12258有5种不同的翻译,它们分别"bccfi", "bwfi", "bczi"…
题目信息 时间: 2019-07-02 题目链接:Leetcode tag: 动态规划 难易程度:中等 题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 翻译成 "z".一个数字可能有多个翻译.请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法. 示例: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是…
题目描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 翻译成 "z".一个数字可能有多个翻译.请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法. 示例1: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi"…
题目要求: 给定一个数字,按照如下规则翻译成字符串:0翻译成“a”,1翻译成“b”...25翻译成“z”.一个数字有多种翻译可能,例如12258一共有5种,分别是bccfi,bwfi,bczi,mcfi,mzi.实现一个函数,用来计算一个数字有多少种不同的翻译方法. 解题思路: 下面我们从自上而下和自下而上两种角度分析这道题目,以12258为例: 自上而下,从最大的问题开始,递归 : 有很多子问题被多次计算,比如258被翻译成几种这个子问题就被计算了两次. 自然想到可以用动态规划来解决,用f(i…
问题描述 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 "a" ,1 翻译成 "b",--,11 翻译成 "l",--,25 翻译成 "z".一个数字可能有多个翻译.请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法. 示例 1: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi&quo…
// 面试题46:把数字翻译成字符串 // 题目:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成"a",1翻 // 译成"b",……,11翻译成"l",……,25翻译成"z".一个数字可能有多个翻译.例 // 如12258有5种不同的翻译,它们分别是"bccfi"."bwfi"."bczi"."mcfi"和 // "mzi&qu…
把数字翻译成字符串 题目描述 给定一个数字,按照如下规则翻译成字符串:1 翻译成"a",2 翻译成"b"... 26 翻译成"z".一个数字有多种翻译可能,例如 12258 一共有 5 种,分别是 abbeh,lbeh,aveh,abyh,lyh.实现一个函数,用来计算一个数字有多少种不同的翻译方法. 题目链接: 把数字翻译成字符串 代码 /** * 标题:把数字翻译成字符串 * 题目描述 * 给定一个数字,按照如下规则翻译成字符串:1 翻译成&…
# 给一个字符串,按如下规则把它翻译成字符串:1翻译成a,2翻译成b,...25翻译成z:一个数可以有多种翻译方式,比如122可以翻译成abb和kb还可以翻译成aw即3种翻译方式.计算一个数字有几种翻译方式class Solution(object): def numDecodings(self, s): """ :type s: str :rtype: int """ s = str(s) dic = list() for i in range…