#1521. 小明的字符串

小明的字符串

题目描述

给定一个只由小写英文字母组成的字符串 tt。小明很喜欢 smzx44 个字符。

他想从字符串 tt 中从左到右选择 44 个字符,使得选出的字符从左到右正好是:

smzx

请你输出有多少种不同的选择方式。由于答案可能很大,你只需要输出答案对 109+710^9+7 取模后的结果。

注意:选择的是子序列,被选择的字符不要求连续,但相对顺序必须保持不变。

例如,若选择的位置不同,即使选出的字符内容相同,也算作不同的选择方式。

输入格式

输入一行一个字符串 tt

输出格式

输出一个整数,表示答案对 109+710^9+7 取模后的结果。

样例 1

输入

ssmmzzxx

输出

16

说明

样例 1 中,可以从 22s 中选一个,从 22m 中选一个,从 22z 中选一个,从 22x 中选一个,因此共有:

2×2×2×2=162\times 2\times 2\times 2=16

种选择方式。

样例 2

输入

smzxsmzxsmzx

输出

15

数据范围与子任务

对于所有数据,满足:

  • 1t<1000001 \le |t| < 100000
  • tt 只由小写英文字母组成。
子任务 分值 特殊性质
子任务 1 15 分 字符串长度<8字符串长度< 8
子任务 2 20 分 字符串长度<25字符串长度<25
子任务 3 s,m,z,x44 个字符在 tt 中都至多出现一次,答案只可能是 0011
子任务 4 删除所有不是 s,m,z,x 的字符后,剩下的字符一定按若干个 s、若干个 m、若干个 z、若干个 x 的顺序排列。
子任务 5 25 分 无特殊性质。

相关

在下列比赛中:

test