package
0.0.0-20230809123828-b071cee2968a
Repository: https://github.com/codehanhan/leetcode-go.git
Documentation: pkg.go.dev

# README

把数字翻译成字符串

1. 题目描述

给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

2. 示例

输入: 12258
输出: 5
解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"

3. 解题

很明显,考察回溯算法,类似青蛙跳台阶

再想想,是否可以使用动态规划算法 动态规划转移方程为: $$ dp[i] = \left{ \begin{array}{ll} dp[i-1] & \textrm{if $n_i,n_j$不可被翻译}\ dp[i-1] + dp[i-2] & \textrm{if $n_i,n_j$可被翻译} \end{array} \right. $$