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 see your function signature returns a char * or String, please click the reload button  to reset your code definition.

Hide Tags

Two Pointers String

class Solution {
public:
    int strStr(char *haystack, char *needle) {
        int hayl=strlen(haystack);
        int nel=strlen(needle);
        for(int i=0;i<=hayl-nel;++i){
            char *h=haystack+i;
            char *n=needle;
            while(*n!=‘\0‘){
                if(*n!=*h)
                    break;
                else{
                    ++h;
                    ++n;
                }
            }
            if(*n==‘\0‘)
                return i;
        }
        return -1;
    }
};
时间: 2024-10-07 11:12:31

Implement strStr() 字符串匹配的相关文章

php -- strstr()字符串匹配函数(备忘)

Learn From: http://blog.csdn.net/morley_wang/article/details/7859922 strstr(string,search) strstr() 函数搜索一个字符串在另一个字符串中的第一次出现. 该函数返回字符串的其余部分(从匹配点).如果未找到所搜索的字符串,则返回 false. string 必需.规定被搜索的字符串. search 必需.规定所搜索的字符串.如果该参数是数字,则搜索匹配数字 ASCII 值的字符. Example 1:

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(

[字符串匹配、KMP]Implement strStr()

一.题目 Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 二.分析 很容易想出O(M*N)的算法,也很容易实现.原串S,模式串P,利用Python中[i:j]方法, 在原串中匹配长度为len(p)的元素.若匹配,返回头:否则向右移.这样复杂度是O(M*N) 最快的是KMP,是O(M+N),看了一

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是

字符串匹配之KMP算法

1.前言: leetcode上的28. Implement strStr()就是一个字符串匹配问题.字符串匹配是计算机的基本任务之一.所以接下来的两篇日志,都对相关的算法进行总结. 2.暴力求解算法 如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有: 如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配下一个字符: 如果失配(即S[i]! = P[j]),令i = i - (j - 1),j = 0.相当于每次匹配失败时,i 回溯

leetcode_28题——Implement strStr()(采用KMP算法,还没AC,但自己这边测试无误)

Implement strStr() Total Accepted: 49294 Total Submissions: 223057My Submissions Question Solution 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 s

[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,这应该是字符串匹配领域中最长听说的算

字符串匹配:KMP

參考:从头到尾彻底理解KMP 在字符串 str 中 匹配模式串 pattern 1. 计算模式串的 next 数组: 2. 在字符串中匹配模式串:当一个字符匹配时,str[i++], pattern[k++] 继续匹配下一个字符:当当前字符不匹配时.依据 next 数组移动模式字符串.k = next[k] next 数组:描写叙述模式串中最长同样的前缀和后缀的长度. #include <iostream> using namespace std; class Solution { publi

28. Implement strStr()-leetcode-java

[原来在SAE的blog上,都转到CSDN了..] 28. Implement strStr()-leetcode-java 发表于 2016/02/06 题意 Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 字符串匹配问题,如果子串在主串中存在,则返回子串在主串中首次出现的第一个字符的位置,不