解析到第i个字符时,如果第i个字符单独解析则有dp[i-1]种解析方式如果第i个字符与i-1个字符一起解析,则需要i-1字符不为0,如果与i-1,i-2一起解析,则要求i-2字符不为0;
所以解析到第i个字符的数量dp[i]=dp[i-1]+dp[i-2](能同时解析的数量)+dp[i-3](能同时解析的数量);能同时解析时为1,不能同时解析时为0;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        char[] chars = s.toCharArray();
        int[] dp=new int[chars.length];
        for (int i=0;i< chars.length;i++){
            dp[i]=(i>=1?dp[i-1]:1)+(i>=2?dp[i-2]:1)*(i>=1?chars[i-1]-'0':0)+(i>=3?dp[i-3]:1)*(i>=2?chars[i-2]-'0':0);
        }
        System.out.println(dp[chars.length-1]);
    }
}