问题 3597 --字符序列(subseq)

3597: 字符序列(subseq)

时间限制: 1 Sec  内存限制: 256 MB
提交: 1  解决: 1
[提交][状态][讨论版][命题人:]

题目描述

小 Z 喜欢字符串。

 小 Z 定义了一个奇妙的函数 f(c, s),对于一个长度为 n 的字符串,f(c, s) = cs1cs2c . . . csnc, 其中 c 是一个小写英文字母。

 不难发现这个函数的作用就是在 s 的每一个空位插入一个小写英文字母,如 f(c, aba) = cacbcac。 小 Z 通过这个函数构造了使用了 n 个小写字母 c1, c2, . . . , cn 构造 n 个字符串 s1, s2, . . . , sn,其中 si = f(ci , si−1),其中 s0 空串。 

小 Z 也非常喜欢子序列,现在他想知道 sn 中有多少个本. 质. 不. 同. 的非空子. 序. 列. 。

输入

输入第一行一个整数 n。

 第二行输入一个长度为 n 的字符串,c1 . . . cn,表示小 Z 要使用的 n 个小写字母。

输出

仅一行一个整数,表示 sn 的本质不同非空子序列个数,由于个数可能很大,答案 对 109 + 7 取模后输出。

样例输入

样例1
2
ab
样例2
10
abbbbaaaab

样例输出

样例1
6
样例2
631522034

提示


【样例 1 解释】
sn = bab,其本质不同子序列为 b,a,ba,ab,bb,bab。



数据范围



对于 20% 的数据,1 ≤ n ≤ 4; 



对于 50% 的数据,1 ≤ n ≤ 20;



 对于 100% 的数据,1 ≤ n ≤ 500. 

来源

 

[提交][状态]