golang刷Leetcode系列 --- 實現strStr()

實現 strStr() 函數。

給定一個 haystack 字符串和一個 needle 字符串,在 haystack 字符串中找出 needle 字符串出現的第一個位置 (從0開始)。若是不存在,則返回  -1。html

示例 1:java

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

示例 2:面試

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

說明:api

當 needle 是空字符串時,咱們應當返回什麼值呢?這是一個在面試中很好的問題。oracle

對於本題而言,當 needle 是空字符串時咱們應當返回 0 。這與C語言的 strstr() 以及 Java的 indexOf() 定義相符。函數

解答

這道題不是太難,簡單的暴力匹配就好。code

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))
}
相關文章
相關標籤/搜索