Я попросил решить следующую задачу в конкурсе по программированию (набор в 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 "}
предложение:" sayfoohi "
output: 6 // порядок не имеет значения, они просто должны быть рядом друг с другом
Кто знает хороший алгоритм для этой проблемы?