
题目解题结果思路一、读题目给定两个字符串 haystack主串、needle子串在主串里找到第一次完整出现子串的起始下标下标从 0 开始如果找不到返回 -1特殊情况needle是空字符串时一般约定返回 0题目隐含二、思路1、拿到两个字符串的长度n haystack长度m needle长度2、如果子串比主串还长直接返回 -1不可能匹配3、遍历主串只需要遍历到 n-m 的位置对每一个起始位置i从i开始对比连续m个字符看是否完全等于needle如果全部字符匹配成功 → 直接返回当前i第一个匹配找到就立刻退出4、循环结束都没找到匹配返回 -1三、换为C语言1、算出两个字符串的长度 n,m2、边界判断mn直接 return -1m0 return03、i 从 0 开始循环i ≤ n-m每一个 i拿 j 从 0 开始依次对比 haystack [ij] 和 needle [j]相等j不等停止换下一个 i如果 j 走完整个 needlejm代表全部匹配return i4、循环跑完都没找到 → return -1