【发布时间】:2014-05-01 03:16:09
【问题描述】:
我在 Java 的 hashset 中存储了几个元素,假设“hello world”、“small大象”、“hellostack”、“others”。现在,我有字符串假设“hello”,我想检查它是否是给定哈希集中任何元素的子字符串。这里是“helloworld”和“hellostack”的子串。
优势:我已经知道了,没有像“stackhello”或“world hello”这样的字符串。我的意思是,无论我想比较什么字符串,我已经知道 它总是在前缀中,而不是在哈希集中元素的中间或后缀中。
注意:我不是要求遍历整个哈希集来检查它!!!! 我需要一种有效的方法,比如我可以在 O(n) 时间内检查它
如果不可能,请提出一种有效的方法(可能在 O(n) 复杂度中),而不使用 hashset。
【问题讨论】:
-
你想检查每个元素而不检查每个元素?
-
你更喜欢哪一个,检查每个元素,还是使用不同的数据结构?不同的数据结构可以代替或补充 HashSet。
标签: java string substring complexity-theory hashset