Implement strStr()

描述


Implement strStr().



Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.


Example 1:
Input: haystack = "hello", needle = "ll"
Output: 2



Example 2:
Input: haystack = "aaaaa", needle = "bba"
Output: -1


题解

package algorithms

//Implement strStr().
//
//Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.

func strStr(haystack, needle string) int {
	ls, lss := len(haystack), len(needle)
	if ls|lss == 0 {
		return 0
	}
	end := ls - lss + 1
	for i := 0; i < end; i++ {
		var t int
		for ii := range needle {
			if haystack[i+ii] != needle[ii] {
				break
			}
			t++
		}
		if t == lss {
			return i
		}
	}
	return -1
}