在多个查询中按字典顺序比较字符串

时间:2018-05-05 19:36:14

标签: string algorithm data-structures

以字典形式多次比较两个数字。

我尝试了什么

问题很简单,比较变更后的字符串,但由于多次查询,我的时间限制超出了错误。

我正在搜索互联网并遇到了段树来解决范围查询。但唉,我无法想象,它在这里可以提供什么帮助。

任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:2)

对于这个问题,细分树似乎有些过分。何时B的字典大于A?当在索引i处,A [i] = 0,B [i] = 1并且A [0:i] = B [0:i]。同时迭代两个字符串并保持一组所有不同的索引。

对于索引i处的每个查询,将B更新为1.然后检查B [i] = A [i]。如果它们相等,则从索引集中擦除i。否则,将其添加到集合中。如果集合中没有留下索引,则A和B现在等于=>回答是的。

如果至少有1个元素,请获取最低索引。如果该索引是j,则意味着A [0:j] = B [0:j]但是A [j]!= B [j]。所以要么A是0而B是1或A是1而B是0.根据它,回答是或否。

这具有O(Q log N)的复杂性,Q是查询量