28.实现strStr()

题目描述

实现 strStr() 函数。

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

示例一:

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

示例二:

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

思路

1.既然是字符串的完全匹配,我们只需要将haystack分段进行截取,每段的截取内容和needle进行比较就可以了。
2.注意循环比较的次数应该等于haystack的长度减去needle的长度加一,这样就可以将每段都进行比较了。

Java代码实现

  public int strStr(String haystack, String needle) {
        int len = needle.length();
        if(len == 0){
            return 0;
        }
        for (int i = 0; i <= haystack.length()-len; i++) {
            String cur = haystack.substring(i,i+len);
            if(cur.equals(needle)){
                return i;
            }
        }
        return -1;
    }

Golang代码实现

func strStr(haystack string, needle string) int {
    if len(needle) == 0{
        return 0
    }

    hayLen := len(haystack)

    needLen := len(needle)

    for i:=0;i<hayLen-needLen+1;i++{
        if haystack[i:i+needLen] == needle{
            return i
        }
    }
    return -1
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务