mirror of
https://github.com/halfrost/LeetCode-Go.git
synced 2025-07-28 22:51:54 +08:00
87 lines
1.3 KiB
Markdown
87 lines
1.3 KiB
Markdown
# [28. Implement strStr()](https://leetcode.com/problems/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
|
||
|
||
```
|
||
|
||
**Clarification**:
|
||
|
||
What should we return when needle is an empty string? This is a great question to ask during an interview.
|
||
|
||
For the purpose of this problem, we will return 0 when needle is an empty string. This is consistent to C's strstr() and Java's indexOf().
|
||
|
||
## 题目大意
|
||
|
||
|
||
实现一个查找 substring 的函数。如果在母串中找到了子串,返回子串在母串中出现的下标,如果没有找到,返回 -1,如果子串是空串,则返回 0 。
|
||
|
||
## 解题思路
|
||
|
||
这一题比较简单,直接写即可。
|
||
|
||
## 代码
|
||
|
||
```go
|
||
|
||
package leetcode
|
||
|
||
import "strings"
|
||
|
||
// 解法一
|
||
func strStr(haystack string, needle string) int {
|
||
for i := 0; ; i++ {
|
||
for j := 0; ; j++ {
|
||
if j == len(needle) {
|
||
return i
|
||
}
|
||
if i+j == len(haystack) {
|
||
return -1
|
||
}
|
||
if needle[j] != haystack[i+j] {
|
||
break
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
// 解法二
|
||
func strStr1(haystack string, needle string) int {
|
||
return strings.Index(haystack, needle)
|
||
}
|
||
|
||
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|