【发布时间】:2015-03-28 18:06:48
【问题描述】:
给定编号为 1 到 N 的 N 个字符串。我们需要回答 Q 个查询。
每个查询的格式为 l r S
对于每个查询,我们需要打印字符串 S 在 [l,r] 范围内出现的次数。
例子:
让 N=3 和字符串是:
abc
def
abc
假设我们有 3 个查询:
查询 1 : 1 2 abc
那么答案是1
查询 2:1 3 abc
那么答案是2
查询 3:1 2 hgj
那么答案是0
如果 N 和 Q 都可以达到 100000 ,如何有效地回答查询。此外,输入中每个字符串的大小都大于或等于 5 且小于或等于 10。
【问题讨论】:
-
为什么查询1的答案是1?为什么第一个和最后一个字符串不是 2 ?我错过了什么?
-
另外,我们可以得到query =
1 3 a吗?我们是否需要查找范围内包含的子字符串?还是完全匹配? -
@amit 完全匹配,对于查询 1,我们只需要检查字符串编号 1 和 2
-
@amit for 1 3 a type query ,答案为零
-
知道了,以为您在寻找子字符串,而 l r 表示每个字符串中的索引。感谢澄清