【发布时间】:2012-01-12 02:57:11
【问题描述】:
我在一次编程比赛(facebook招聘)中要求解决以下问题
输入:子字符串列表:
{"bar","foo","hi"} //from 1 to 100 sub-strings
和句子:
"hellothisisfoobarhi" //from 1 to 1000000 character
输出:12 //句子中第一个匹配的索引(foo)
另一个例子是:
子字符串:{"hi","hi"}
句子:“hiJonIamSayinghihiforYou”
output:15 // hi 的索引,第二个 'hi' 因为第一个 'hi' 只是一个技巧,子句是 'hi' hi"
还有一个例子:
子字符串:{"hi","foo"}
句子:“sayingfoohi”
output:6 // 顺序无关紧要,只要彼此相邻即可
谁知道解决这个问题的好算法?
【问题讨论】:
-
现在您编辑了您的帖子,但之前您说过“挑战自己”。你知道答案吗 ?如果是,为什么要在这里问。我不确定 StackOverFlow 是否会挑战人们。就是为了你的问题从别人那里得到帮助。
-
不,我不知道解决方案,我正在尝试寻求帮助来解决问题。这个问题很有挑战性
-
fooxbarxhi 和 hifoobar 是否也匹配?我们能否负担得起对子字符串列表进行昂贵的预处理,或者它们是否会变得更频繁?
-
不,它们应该存在于主句中
-
是的,但它不构成这些子串可以构成的句子。
标签: string algorithm substring string-matching