「火」皇家烈焰
题号:NC53683
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

帕秋莉掌握了一种火属性魔法

由于钟爱扫雷游戏,帕秋莉把自己图书馆前的走廊看作一个一维的扫雷地图,她制造了很多烈焰,排在这条走廊内

现在帕秋莉告诉你一部分烈焰的分布情况,请你告诉她可能的情况有多少种

对于一个格子,里面会有以下几种字符:

0:这个格子没有烈焰,且其左右两个格子均没有烈焰

1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰

2:这个格子没有烈焰,且其左右两个格子中均有烈焰

*:这个格子有烈焰

?:未告诉你本格情况

输入描述:

一个字符串

输出描述:

输出一行,一个整数表示答案,对1e9+7取模
示例1

输入

复制
?1?

输出

复制
2

说明

已知第二个格子左右有一个烈焰

因此可能的情况有*10和01*,显然其他情况都无法满足已知条件的要求

备注:

字符串的长度为n
对于30%的数据,n≤20
对于60%的的数据,n≤1,000
对于100%的数据,n≤1,000,000