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. $$