本题采用贡献法与乘法原理进行计数。考虑每一个字符作为那个“恰好出现2次”的字符时,对答案的贡献,再将所有贡献累加。
统计频数
令字符串长度为 n。首先统计每个小写字母的出现次数,记作 cnt[ch]。
枚举出现两次的字符
遍历 26 个小写字母,假设当前字符 i 恰好出现 2 次(若 cnt[i] < 2 则跳过)。
给定一个仅由小写字母构成的字符串,考虑其所有子序列(子序列可通过删除任意字符得到,但要求剩余字符的相对顺序保持不变)。
对于一个子序列,若其中恰好有一种字符出现了恰好 2 次,而其他所有种类的字符出现的次数均不等于 2,则称该子序列是“唯一双现”的。
现在请你计算该字符串的所有子序列中,“唯一双现”子序列的个数。
由于答案可能非常大,你需要输出这个数目对 109+7 取模的结果。
字符串长度不超过 2×105,且仅包含小写字母。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.