#2043. 扫雷

扫雷

题目描述

给定一个字符串str,\red{str,}0,1,2,,?\red{0,1,2,*,?}组成。

\red{*}视为雷,数字就是数字,合法为扫雷地图的合法性。

现在你可以将?\red{?}替换成其他字符中的任意一个,问能够使原串合法的方案数。

PS\red{PS:}数字i\red{i}表示以i\red{i}为中心的九宫格中只有i\red{i}个雷. 如2\red{2}是非法的,而2\red{2*}是合法的。

输入格式

一个字符串,仅由0,1,2,,?\red{0,1,2,*,?}组成.

输出格式

仅一个数,对109+7\red{10^9+7}取模。

样例

输入样例

?01???

输出样例

4

提示

样例解释:

在样例中,我们可以得到一下四种合法的方案:

001 \red{001~}  \red{*~} 1\red{*1}

001 \red{001~}  \red{*~} \red{**}

001 \red{001~}  \red{*~} 2\red{2*}

001 \red{001~}  \red{*~} 10\red{10}

数据范围:

对于30%\red{30\%}的数据,满足str\red{|str| ≤} 10\red{10,}

对于所有的数据,满足str\red{|str| ≤} 106\red{10^6}