28. Implement strStr()
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
题意:
在一个字符串haystack中寻找有没有子字符串needle,要是有的话,返回第一次出现的位置,否则返回1。
解法①:
遍历求解。从haystack的第一个元素开始尝试着和needle匹配,将二者的字符进行比较,如果相同,更新答案的index起点值,如果不同,则从index+1开始重新匹配。
代码:[cpp] view plain
复杂度:
设haystack长度为n,needle长度为m,那么该种解法的时间复杂度是O(nm)。
解法②:
这一题可以利用数据结构中学习过的KMP算法进行求解。利用KMP算法求解该问题的话,时间复杂度为O(n+m)。