import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    public int solve (String nums) {
        if (nums.contains("00")) {
            return 0;
        }
        char[] charArray = nums.toCharArray();
        if (charArray[0] == '0') {
            return 0;
        }
        int n = charArray.length;
        int result = 1;
        int lastlastInt = 100;

        int[] dp = new int[n];
        dp[0] = 1;
        for (int i = 1; i < n; i++) {
            int lastInt = Integer.parseInt(charArray[i - 1] + String.valueOf(charArray[i]));
            if (lastInt <= 26) {
                if (i >= 2) {
                    lastlastInt = Integer.parseInt(charArray[i - 2] + String.valueOf(
                                                       charArray[i - 1]));
                }
                if (lastlastInt <= 26) {
                    if (charArray[i - 1] != '0') {
                        result += dp[i - 2];
                    }
                } else {
                    if (charArray[i] != '0') {
                        result *= 2;
                    }
                }
            } else {
                if (charArray[i] == '0') {
                    return 0;
                }
            }
            dp[i] = result;
        }
        return result;
    }
}