面试真题

算法 · 中等 · 字节跳动

算法 求字符串位置

中等 算法 🎤 字节跳动
参考答案
结论:求字符串位置通常指子串查找(如实现strStr),返回模式串在主串中首次出现的起始索引,无则返回-1;推荐KMP算法。核心要点:暴力匹配O(n*m)易超时;KMP通过预处理模式串得到next数组(最长公共前后缀长度),匹配失败时主串指针不回溯,模式串滑到next[j]继续,时间降至O(n+m)。构建next:next[0]=-1,遍历模式串用前缀指针k,若p[i]==p[k]则next[i+1]=k+1,否则k=next[k]。示例:主串'ababc'模式'abc'返回2。
题目整理自公开面经,答案由校招宝自研生成,仅供参考