题目描述:
力扣https://leetcode-cn.com/problems/implement-strstr/个人用的是暴力匹配的放法
public static int strStr(String haystack, String needle) {
if (null == needle || "".equals(needle)) {
return 0;
}
int flag = needle.length() - 1;
while (flag < haystack.length()) {
String s = haystack.substring(flag - needle.length() + 1, flag + 1);
if (s.equals(needle)) {
return flag - needle.length() + 1;
}
flag++;
}
return -1;
}
复杂度分析
时间复杂度: O(n×m),其中 n 是字符串 haystack 的长度, m 是字符串 needle 的长度。最坏情况下我们需要将字符串 needle 与字符串 haystack 的所有长度为 m 的子串均匹配一次。
空间复杂度: O(1)。我们只需要常数的空间保存若干变量。
官方给出的第二种解法是KMP