#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}