本文主要是介绍【Leetcode 28】 实现strStr(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
方法1:
python版本
class Solution:def strStr(self, haystack: str, needle: str) -> int:c=-1for i in range(len(haystack)-len(needle)+1):if haystack[i:i+len(needle)]==needle:c=ibreakreturn c
java版本
class Solution {public int strStr(String haystack, String needle) {int L = needle.length(), n = haystack.length();for (int start = 0; start < n - L + 1; ++start) {if (haystack.substring(start, start + L).equals(needle)) {return start;}}return -1;}
}
注意时间复杂度,总共得比较次数是N-L+1次,这里把常数级给忽略掉了
方法2:使用KMP算法
https://leetcode-cn.com/problems/implement-strstr/solution/kmp-suan-fa-xiang-jie-by-labuladong/
题目参考链接
https://leetcode-cn.com/problems/implement-strstr/solution/shi-xian-strstr-by-leetcode/
这篇关于【Leetcode 28】 实现strStr()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!