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