【发布时间】:2017-12-04 18:02:06
【问题描述】:
需要一种方法来解决这个问题!
问题:给定两个包含小写字母的字符串,计算第一个字符串的所有不同字谜中非相交子串的匹配数以 10^9+7 为模,使得它们等于第二个字符串的任何字谜。
示例:
1) 字符串 1:“ABC”,字符串 2:“AB”
答案 = 4
解释 : 'ABC','BAC','CAB','CBA' 都贡献了 1 个这样的匹配。
2) 字符串 1:“ABCAB”,字符串 2:“AB”
答案 = 40
解释:字符串 1 'ABAABC' 的一个可能的 Anagram 匹配计数为 2,即 'AB' 和 'AB',而 'BABCA' 仅提供一个匹配,即 'BA' 或 'AB'。
约束:
n,m 是第一个和第二个字符串的长度
0
0
我尝试使用的方法包括预先计算前 200 个阶乘以 10^9+7 为模,然后从给定的字符串计算字符串可以具有的最大非相交模式 (mx) 并从 p=1 循环到 mx并计算第一个字符串的重新排列次数,该字符串正好包含 p 个不相交的子字符串(即字符串 2)模式。
我在这里缺少其他方法吗?
【问题讨论】:
标签: count permutation dynamic-programming