#P1303. Orange实在太多了>_<

Orange实在太多了>_<

Orange实在太多了>_<

题目描述

由于Orange扰动了四维空间,导致一些本来平行的时间线发生了杂糅,这些时间线一起汇聚到了一个点上,导致现在这里出现了来自各个时间结点的Orange:

“能不能去加训。”
“你专业课怎么考这么低?我要开始笑你了。”
“菜就多练。”
“你哪有那么多事?”
“怎么又在写水题,写水题也就骗骗自己了。”
...

Orange实在是太多了!为了方便安顿这些Orange,你需要计算到底有多少个Orange。

现在给你一个仅包含小写字母的字符串,你需要统计其中所有orange子序列的个数。由于答案会很大,所以你只需要计算答案 mod109+7\bmod 10^9+7 即可。

子序列指的是在字符串中,删除任意个字符后,剩下字符相对位置保持不变所构成的新字符串。例如对于字符串 abc,他的子序列有 a b c ab ac bc abc,但 cb 不是他的子序列,因为其无法仅通过删去字符得到。

输入格式

输入包含多组测试数据,第一行为一个整数 TT,表示测试用例的组数。

对于每组测试用例: 第一行包含一个字符串 SS,表示给定的字符串。

数据范围

SiazS_i \in {a\sim z} S2×105\sum |S| \le 2 \times 10^5

输出格式

对于每组测试用例,输出一行,包含一个整数,表示答案。

样例 #1

样例输入 #1

4
orange
oorangee
abcd
orang

样例输出 #1

1
4
0
0