剑指offer46.把数字翻译成字符串

给定一个数字,把0翻译成a,1翻译成 b…25翻译成 z。一个数字可能有多个翻译。计算一个数字有多少种翻译的方法

思路:最开始的一个或者两个数字被翻译成一个字符之后,我们接着翻译剩下的数字,可以写成一个递归函数。
f(i)=f(i+1)+g(i,i+1)
f(i+2)。当第 i 位和第 i+1位两位数字拼接起来的数字在10~25范围内,g(i,i+1)等于1,否则为0

因为递归自上而下解决问题会出现重复,我们可以从最小的子问题自下而上解决问题。也就是从数字的末尾开始,从右到左翻译并计算不同翻译的数目。

你可能感兴趣的:(剑指offer46.把数字翻译成字符串)