LeetCode Simple_28 实现strStr()

问题描述

实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。

示例

输入: haystack = "hello", needle = "ll"
输出: 2
输入: haystack = "aaaaa", needle = "bba"
输出: -1

思路

第一秒KMP,第二秒不会写……hhhhh。与上题一样,利用双指针进行循环匹配,效率上肯定不如KMP算法高效。外循环的索引表示将要匹配的子串在原字符串中的起始位置,内循环的索引表示匹配子串的位置。不使用内外索引均表示字符串起始位置,这样做是为了避免子串比原串长导致误判的情况。如:haystack = "aaaa", neddle = "aaaaaaa"。简单题老老实实双指针,KMP学了没啥用

//报错的代码
class Solution {
    public int strStr(String haystack, String needle) {
        if(needle.equals("")){
            return 0;
        }
        for(int i=0; i

你可能感兴趣的:(LeetCode Simple_28 实现strStr())