题解 | #把数字翻译成字符串#
把数字翻译成字符串
https://www.nowcoder.com/practice/046a55e6cd274cffb88fc32dba695668
from enum import Flag from sys import flags # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 解码 # @param nums string字符串 数字串 # @return int整型 # class Solution: def solve(self , nums: str) -> int: # write code here n =len(nums) dp =[0]*n flag =True for i in range(n): if i==0: if nums[i]=='0': dp[i]=0 else: dp[i]=1 if i==1: c=nums[i-1:i+1] cn = int(nums[i-1:i+1]) if '0' in c: if '00' in c: dp[i]=0 else: if '0'==c[0]: dp[i]=0 else: if '10' in c or '20' in c: dp[i]=1 else: dp[i]=0 else: if cn>0 and cn <27: dp[i]=2 else: dp[i]=1 if i>1: c= nums[i-1:i+1] cn=int(nums[i-1:i+1]) if '0' in c: if '00'==c: dp[i]=0 else: if '0' in c[0]: dp[i]=dp[i-1] else: if '10' in c or '20' in c: dp[i]=dp[i-2] else: dp[i]=0 else: if cn>0 and cn<27: dp[i]=dp[i-1]+dp[i-2] else: dp[i]=dp[i-1] if Flag: return dp[-1] else: return 0