給定一個 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)) }