#P5342. 更多xlx

更多xlx

题目描述

xielaoshixielaoshi 有一个字符串 SS,该字符串仅由字符 *xxll 组成。字符 * 可以被替换为 xxll

xielaoshixielaoshi 想要计算在所有可能通过替换 * 生成的字符串中,包含子序列 xlxxlx 的总数。由于这个数字可能非常大,你需要输出其模 109+710^9+7 的结果。

例如,当 SSxxx*x* 时,可以替换为 xlxl,xlxx,xxxl,xxxxxlxl, xlxx, xxxl, xxxx,其中分别有 1,2,0,01, 2, 0, 0xlxxlx 子序列,共 33 个。

输入格式

第一行一个整数 TT 表示数据组数。对于每组数据:

  • 第一行一个整数 nn 表示 SS 的长度。
  • 第二行一个字符串 SS

输出格式

对于每组数据,输出一行一个整数表示答案,结果对 109+710^9+7 取模。

数据范围

  • 对于 30% 的数据:1T51 \leq T \leq 5n10n \leq 10
  • 对于 60% 的数据:1T51 \leq T \leq 5n100n \leq 100
  • 对于 100% 的数据:1T51 \leq T \leq 5n106n \leq 10^6SS 中仅包含 xxll* 三种字符。

样例输入

2
4
x*lx
4
x*x*

样例输出

4
3