把数字翻译成字符串
目录
把数字翻译成字符串
题目:
https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/
思路:
dp思想,不用管是什么字符,定义dp[i]为长度为i时 有多少个方法
代码:
class Solution:
def translateNum(self, num: int) -> int:
= str(num)
s if len(s) < 2:
return 1
= [0] * len(s)
dp 0] = 1
dp[1] = 2 if int(s[0] + s[1]) < 26 else 1
dp[for i in range(2,len(s)):
= dp[i-1] + dp[i-2] if int(s[i-1] + s[i]) < 26 and s[i-1] != '0' else dp[i-1]
dp[i] return dp[-1]
注意如果长度小于等于1 则直接返回1
如果不是26个英文字母里面的 则dp[i] = dp[i-1] 说明方法次数并不改变
注意有首位为0的情况 所以要int一下