给定字符串 $S$ ,定义它的长度为 $|S|$,每次可以选择一个 $i$ ,需要满足 $i < |S|$ 且 $S_i \neq S_{i+1}$ ,然后从 $S$ 中删除 $S_{i+1}$ ,例如 $abc$ 可以选择 $i = 1$ 变成$ac$ 。定义 $f(S)$ 为选择一个合适的操作序列,最终能得到的 $S$ 的最短长度,例如 $f(abc) = 1,$ $f(aa)=2$ 。
现在给定一个字符串 $C$ ,只包含小写字母和 .
。定义 $\displaystyle{f(C)=\sum_{T} {f(T) \cdot g(C,T)}}$,求 $f(C)$ 对 $10^9 + 7$ 取模的值。其中,如果将 $C$ 中每个 .
都替换成某个小写字母能得到 $T$ ,不同位置的 .
可以用不同的小写字母替换,那么 $g(C,T)=1$ ,否则 $g(C,T) = 0$ 。
第一行包含一个正整数 $T$ ,表示有 $T$ 组测试数据。
接下来依次给出每组测试数据。对于每组测试数据:
仅一行,包含一个由小写字母和 .
组成的字符串 $C$ 。
$1 \leq T \leq 15, 1 \leq |C| \leq 10^5$
对于每组数据输出一行,包含一个整数,表示 $f(C)$ 对 $10^9 + 7$ 取模的值。
2
abc
a.
1
27
对于第二组数据,若 .
用 a
替换,则最终长度为 2
,否则最终长度为 1
,因此答案是 2 + 25 = 27
。