计数题
题目背景
[Easy Counting Problem](https://atcoder.jp/contests/agc022/tasks/agc022_e)
> 身のうさを思ひしらでややみなまし そむくならひのなき世なりせば
题目描述
给定长度为 $N$ 的 $01$ 串 $S$,你可以做若干个操作,形如将长度为 $3$ 的子串变成它们的中位数(注意是变成一个数字),问可以得到多少个不同的串。
答案对 $998244353$ 取模。
输入输出格式
输入格式
本题有多组数据。第一行输入数据组数 $T$。
对于每组数据,仅输入一个字符串 $S$ 表示给定的 $01$ 串。
输出格式
对每组数据输出一行一个整数,表示答案对 $998244353$ 取模的结果。
输入输出样例
输入样例 #1
4
1001
111000
101010
111000101010
输出样例 #1
3
7
3
25
说明
**【样例解释】**
可以证明,$1001$ 仅能通过操作获得串 $10,01,1001$ ,因此样例第一组数据的答案为 $3$。
---
**【数据范围】**
对于 $100 \%$ 的数据,满足 $1\le N \le 5\times {10}^6$,$S_i\in\{0,1\}$,$1 \le T \le 5$。
| 子任务 | $N \le$ | 特殊性质 | 分数 |
| - | - | - | - |
| 1 | $10$ | | $5$ |
| 2 | $50$ | | $10$ |
| 3 | $300$ | | $10$ |
| 4 | $2000$ | | $15$ |
| 5 | | A | $5$ |
| 6 | | B | $5$ |
| 7 | ${10}^5$ | | $20$ |
| 8 | | | $30$ |
特殊性质 A:保证 $S_i=0$。
特殊性质 B:保证 $S_{2k}=0$、$S_{2k+1}=1$。
**字符串下标的编号从 $1$ 开始。**