You are given a string, s, and a list of words, words, that are all of the same length. Find all starting indices of substring(s) in s that is a concatenation of each word in words exactly once and without any intervening characters. For example, given: s: "barfoothefoobarman" words: ["foo", "bar"] You should return the indices: [0,9]. (order does not matter).
再想了下,不存在说上面说的两个子串问题,那就比较好办了,a,b 双指针,间隔单词个长度,右移,直到匹配到第一个单词,a 就固定。b 继续走,检查 b 前单词个长度是不是单词列表里面的,直到单词列表里面全部标记完,暂存 b,然后 b 继续走,看看还有没单词是在单词列表里面的,有就更新暂存的 b 最后到尾巴返回 a 暂存 b 就行
zqqian
2018-03-22 08:51:45 +08:00
ac 自动机跑一遍就可以了吧。。
holyghost
2018-03-22 09:09:39 +08:00
rolling hash ?
victor97
2018-03-22 09:53:45 +08:00
hash + dp
FenGuWu
2018-03-22 13:53:49 +08:00
dfa 算法
第 1 页 / 共 1 页
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。