Type: Default 1000ms 256MiB

解码方法

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

问题陈述

一条包含字母 A-Z 的消息通过以下映射进行了 编码 : "11" -> 'AA' "22" -> 'BB' ... "2525" -> 'YY' "2626" -> 'ZZ' 然而,在解码已编码的消息时,你意识到有许多不同的方式来解码,因为有些编码被包含在其它编码当中("22" 和 "55" 与 "2525")。 例如,"1110611106" 可以映射为: "AAJFAAJF" ,将消息分组为 (11, 11, 1010, 66) "KJFKJF" ,将消息分组为 (1111, 1010, 66) 消息不能分组为 (11, 1111, 0606) ,因为 "0606" 不是一个合法编码(只有 "66" 是合法的)。 注意,可能存在无法解码的字符串。 给你一个只含数字的非空字符串s,请计算并返回解码方法的 总数.如果没有合法的方式解码整个字符串,返回00。 答案可能很大 输出对998244353998244353取模的结果

输入格式

包含一个字符串 ss,只包含数字 ( 1s1051 \le |s| \le 10^5 )

输出格式

输出答案对998244353998244353取模的结果

样例1

input

12

output

2

样例2

input

226

output

3

样例解释

对于第一个样例:它可以解码为 "ABAB"(11 22)或者 "LL"(1212) 对于第二个样例:它可以解码为 "BZBZ" (22 2626), "VFVF" (2222 66), 或者 "BBFBBF" (22 22 66)

限制与约定

对于 30%30\% 的数据,1s201 \le |s| \le 20 。 对于 100%100\% 的数据,1s1051 \le |s| \le 10^5

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB