#P0738. 平衡二进制串

平衡二进制串

题目描述

小可拿到了一个长度为 nn 且只包含 01? 的字符串 ss 小可认为一个二进制串是平衡的,当且仅当相邻两个字符相同的对数是偶数。

特别的,长度为 11 的01串也是平衡的,因为此时对数为 00

现在小可要将所有的 ? 替换为 0 或者 1 ,你的任务是求出在所有可能的替换字符串中,有多少个 01 二进制串是平衡的?结果对998244353998244353 取模。

输入格式

一行一个字符串 s。

输出格式

输出满足条件的二进制串数量。

样例

0?1
0
????
8

样例解释

第一组数据:s=0?1s = 0?1,两种替换:

"001001":相邻相同对数为 11("0000"),奇数,不平衡。

"011011":相邻相同对数为 11("1111"),奇数,不平衡。

输出 00

数据范围

3030 分,保证 1s1031 \le |s| \le 10^3 ,且问号的数量 10\le 10

100100 分,1s5×1051 \leq |s| \leq 5 \times 10^5