golang刷Leetcode系列 --- 实现strStr()
Posted 令狐葱dennis
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang刷Leetcode系列 --- 实现strStr()相关的知识,希望对你有一定的参考价值。
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。
示例 1:
输入: haystack = "hello", needle = "ll" 输出: 2
示例 2:
输入: haystack = "aaaaa", needle = "bba" 输出: -1
说明:
当 needle
是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。
对于本题而言,当 needle
是空字符串时我们应当返回 0 。这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。
解答
这道题不是太难,简单的暴力匹配就好。
package main import ( "fmt" ) func strStr(haystack string, needle string) int { index := -1 var i, j, k int if len(needle) == 0 { index = 0 } for i = 0; i < len(haystack); i++ { for j, k = 0, i; j < len(needle) && k < len(haystack); j, k = j+1, k+1 { if needle[j] != haystack[k] { //不匹配,退出循环 break } } if j == len(needle) { //匹配完成,退出循环 index = i break } } return index } func main() { haystack := "aaa" needle := "a" fmt.Println(strStr(haystack, needle)) }
以上是关于golang刷Leetcode系列 --- 实现strStr()的主要内容,如果未能解决你的问题,请参考以下文章
菜鸟系列 Golang 实战 Leetcode —— 面试题57 - II. 和为s的连续正数序列