028_实现strStr()

Description

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

Example
输入: haystack = "hello", needle = "ll"
输出: 2

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

说明:
当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。

Solution
//暴力比较
func strStr(haystack string, needle string) int {
    if needle == "" {
        return 0
    }
    for i := 0;i < len(haystack);i ++ {
        equle := true
        for j := 0; j < len(needle); j ++ {
            if needle[j]!= haystack[i] {
                equle = false
                break
            }
        }
        if equle {
            return i
        }
    }

    return -1
}


//字符串截取比较(可能不符合题设)
func strStr(haystack string, needle string) int {
    if needle == "" {
        return 0
    }
    if len(needle) > len(haystack) {
        return -1
    }
    for i := 0;i < len(haystack);i ++ {
        if i + len(needle) > len(haystack) {
            return -1
        }
        if needle == haystack[i:i+len(needle)]{
            return i
        }
    }
    return -1
}

leetCode地址