题目描述
在信息检索系统中,倒排索引是一种常用的数据结构,用于快速查找包含特定词语的文档集合。为了增强搜索的灵活性,我们引入了 N-Gram 分词算法,参数 [min,max],表示分别按照长度 min、min+1、⋯、max 对单词进行滑动窗口截取。例如对于 [3,5] 的 N-Gram,会将单词 lanqb 分割为 [lan,anq,nqb,lanq,anqb,lanqb] 的索引序列,如果文档长度小于 min,那么索引序列只包含文档本身。
给定 n 个文档,对于第 i 个文档 di,利用上述的 N-Gram 算法为其生成一组索引序列 Li。对于查询词 q,也对其应用 N-Gram 为其生成一个索引序列 P,如果序列 P 中的某个单词出现在序列 Li 中,那么就认为查询词和文档 di 匹配成功。
请统计查询词 q 能与多少个文档匹配成功。
输入格式
输入的第一行包含三个正整数 n,min,max,相邻整数之间使用一个空格分隔。
接下来 n 行,每行包含一个字符串,其中第 i 行的字符串表示文档 di。
接下来一行包含一个字符串,表示查询词 q。
输出格式
输出一行包含一个整数表示答案。
3 3 4
angel
ac
angle
lang
2
提示
【样例说明】
文档分词结果如下:
- angel:[ang,nge,gel,ange,ngel]
- ac:[ac]
- angle:[ang,ngl,gle,angl,ngle]
查询词分词结果如下:
- lang:[lan,ang,lang]
angel 和 angle 的分词中都包含 ang,所以答案为 2。
【评测用例规模与约定】
设 ∣s∣ 表示字符串 s 的长度。
对于 50% 的评测用例,1≤n≤100;
对于所有评测用例,1≤n≤103,1≤min≤max≤20,1≤∣di∣,∣q∣≤20,di 和 q 都只包含小写英文字母。