[LeetCode] Implement strStr() [18]

题目

Implement strStr().

Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.

原题链接(点我)

解题思路

字符串匹配这也是个老题了,方法主要有下面4种,

1. 暴利破解法(BF),这个没啥说的,就是一轮一轮的比较,知道遇到相匹配的,这个的时间复杂度为O(n^2)。

2. KMP,这应该是字符串匹配领域中最长听说的算法了吧。

3. Horspool算法,这个不常听说,但是也是很有名的。

4. Boyer-Moore,这个听说过的人应该也不会很多,这个算法在大量字符串的情况下,效率是最高的,能达到kmp的3到4倍。

上面四种算法都很重要,一般标准库中的字符串匹配都使用的是暴力法。

上面四种算法详细的见我下面的这几篇博文,相信你读过后应该不会在这个问题上有什么问题了。

字符串匹配之KMP---全力解析

字符串匹配之---BF算法(暴力破解法)

字符串匹配之KMP算法(续)---还原next数组

字符串匹配之horspool算法(简化的BM算法)

《grep之字符串搜索算法Boyer-Moore由浅入深(比KMP快3-5倍)》(此文为cnblog上一位美女程序猿的大作)

如果你觉得本篇对你有收获,请帮顶。

另外,我开通了微信公众号--分享技术之美,我会不定期的分享一些我学习的东西.

你可以搜索公众号:swalge 或者扫描下方二维码关注我

(转载文章请注明出处: http://blog.csdn.net/swagle/article/details/29201601
)

[LeetCode] Implement strStr() [18]

时间: 2024-10-13 07:34:39

[LeetCode] Implement strStr() [18]的相关文章

LeetCode: Implement strStr() [027]

[题目] Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack. [题意] 实现库函数strStr(), 功能是在字符串haystack中找出目标串needle第一次出现的索引位 [思路]字符串的匹配,能够用暴力解法,但不推荐.一般使用KMP算法求解. 简要介绍一下KMP的思想: haystack是

leetcode | Implement strStr() | 实现字符串查找函数

Implement strStr() : https://leetcode.com/problems/implement-strstr/ Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 如:haystack = "bcbcda"; needle = "bcd" 则 return 2 解析:字符串查找函数,

LeetCode Implement strStr()

Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Update (2014-11-02): The signature of the function had been updated to return the index instead of the pointer. If you still

[Leetcode] implement strStr() (C++)

题目: Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Update (2014-11-02):The signature of the function had been updated to return the index instead of the pointer. If you st

leetcode——Implement strStr() 实现字符串匹配函数(AC)

Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack. 这个题考查的是KMP算法.先求特征向量,然后再进行匹配,确实能够大大提高效率.code例如以下: class Solution { public: char *strStr(char *haystack, char *needle) { if(

leetcode implement strStr python

#kmp class Solution(object): def strStr(self, haystack, needle): """ :type haystack: str :type needle: str :rtype: int """ if len(haystack) <= 0 and len(needle)<=0: return 0 arrNext=self.getNext(needle) i=0 j=0 intHLen=

LeetCode Implement strStr() 实现strstr()

如题 思路:暴力就行了.1ms的暴力!!!别的牛人写出来的,我学而抄之~ 1 int strStr(char* haystack, char* needle) { 2 if (!haystack || !needle) return -1; 3 for (int i = 0; ; ++i) { 4 for (int j = 0; ; ++j) { 5 if (needle[j] == 0) return i; 6 if (haystack[i + j] == 0) return -1; 7 if

leetcode Implement strStr()(easy) /java

我以为,当时我用c++写这个函数的时候,整个人如同乱麻. 这次用java写.先查的SE 8中String的方法.找到两个与此函数有关的方法:matches()和substring(). import java.io.*; import java.util.*; public class Solution { public static int strStr(String haystack, String needle) { int r=-1; int len1=haystack.length()

LeetCode 28. Implement strStr()

https://leetcode.com/problems/implement-strstr/ Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 字符串简单题.一定要写的没BUG. 如果不在函数最后一行写return语句的话,LeetCode会出RUNTIME ERROR. Line 27: co