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

京公网安备 11010502036488号