编程题
### 问题描述
给定一个编辑后的基因组,基因组中的字符包括 $A$、$G$、$C$、$T$ 和 $?$。小齐希望确定原始基因组的可能性数量,原始基因组通过以下步骤编辑得到:
在任意两个相邻的相同字符之间进行分割。
反转得到的子串。
将反转后的子串按相同顺序连接在一起。
请计算可能的原始基因组数量,结果需对 $10^9+7$ 取模。
### 输入格式
一个非空字符串,其中每个字符为 $A$、$G$、$C$、$T$ 或 $?$。
### 输出格式
可能的原始基因组数量对 $10^9+7$ 取模的结果。
### 样例输入
```
?
```
### 样例输出
```
4
```
### 评测数据规模
$1 \leq str \leq 102$。