28_Implement strStr

/*
 Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. 

*/

解决思路:  遍历haystack与needle,时间复杂度O(n^2) 
class Solution {
public:
    int strStr(string haystack, string needle) {
        if(haystack.size()==0 && needle.size()==0) return 0;
        for(int i;i<haystack.size();i++){
            bool label =true;
            for(int j=0;j<needle.size();j++)
                if(haystack[i+j] != needle[j]) {
                    label = false;
                    break;}
            if(label)
                return i;
        }
        return -1;
    }
};

discussion:

  题目类似字符串匹配,可参考KMP算法 https://en.wikipedia.org/wiki/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm

时间: 2024-11-01 15:10:19

28_Implement strStr的相关文章

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

Implement strStr()

package cn.edu.xidian.sselab.string; /** *  * @author zhiyong wang * title: Implement strStr() * content: *  Implement strStr(). *   *  Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.  * */pub

【LeetCode】Implement strStr()

Implement strStr() Implement strStr(). Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack. 标准KMP算法.可参考下文. http://blog.csdn.net/yaochunnian/article/details/7059486 核心思想在于求出模式串前缀与后缀中重复部分,将重复信息保存在n

刷题之Implement strStr()

1 public class Solution { 2 public int strStr(String haystack, String needle) { 3 int big = haystack.length(); 4 int sub = needle.length(); 5 if(big==0 && sub==0) return 0; 6 if(big==0 && sub!=0) return -1; 7 int index = big-sub; 8 for(int

strstr函数

语法 strstr(string,search,before_search) 参数解析 参数 描述 string 必需.规定被搜索的字符串. search 必需.规定所搜索的字符串. 如果此参数是数字,则搜索匹配此数字对应的 ASCII 值的字符. before_search 可选.默认值为 "false" 的布尔值. 如果设置为 "true",它将返回 search 参数第一次出现之前的字符串部分. 示例 <?php     echo strstr(&quo

C 函数 strstr 的高效实现

      C函数库中有一个函数 strstr(char*, char*),它实现的是在一个原字符串中查找一个子串.假设找到这种一个子串,返回这个子串在原字符串中的起始位置,若没有找到这种一个子串.则返回NULL.       可是,函数库中实现的仅是普通情况下的查找.即没有做太多优化,在运行一些特殊的字符串时效率非常低,所以,在非常多面试中要求改进这个算法,实现效率高的 strstr 算法,这里,我对原算法进行几处修改.在对某些特殊測试用例时.运行效率确实比原算法高出很多,这里,贴出实现代码.

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=

从C++strStr到字符串匹配算法

字符串的匹配先定义两个名词:模式串和文本串.我们的任务就是在文本串中找到模式串第一次出现的位置,如果找到就返回位置的下标,如果没有找到返回-1.其实这就是C++语言里面的一个函数: extern char *strstr(char *str1, const char *str2); 对于这个函数的解释: str1: 被查找目标 str2: 要查找对象 返回值:如果str2是str1的子串,则返回str2在str1的首次出现的地址: 如果str2不是str1的子串,则返回NULL. 例如: cha

【HDOJ 4763】 Theme Section (KMP+strstr)

[HDOJ 4763] Theme Section Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1999    Accepted Submission(s): 947 Problem Description It's time for music! A lot of popular musicians a