【Go语言学习】LeetCode 28. 实现strStr()
2019-05-27 10:04
706 查看
实现 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() 定义相符。
[code]func strStr(haystack string, needle string) int { //index用来标记第一个字符匹配成功的下标,i,j为匹配过程中needle和haystack的下标 var index, i, j int var flag bool//needle的第一个字符匹配成功时作标记, //如果needle为空返回0 if needle == "" { return 0 } //如果needle的长度大于haystack的长度,肯定不会匹配到直接返回-1 if len(needle) > len(haystack) { return -1 } //正常情况匹配 for i, j = 0, 0; j < len(haystack); j++ { if i < len(needle) { if needle[i] == haystack[j] { if !flag { flag = true index = j } i++ } else { if flag { i = 0 flag = false j = index index = -1 } } } else {//如果已经匹配完成直接跳出循环不在与haystack后边的内容比较 break } } //判断needle是不是已经匹配完成 if i != len(needle) { index = -1 } return index }
相关文章推荐
- LeetCode 28 Implement strStr()(实现strStr()函数)
- 【LeetCode】28 实现strSTR()
- LeetCode 28 实现strStr() Python
- 28. 实现strStr()Leetcode
- Leetcode 28 实现strStr() Java
- Leetcode 28:实现strStr() indexOf()(Implement strStr() indexOf())
- 【LeetCode】28. 实现strStr()
- Python LeetCode(28.实现strStr())
- GO语言学习——简单的key-valeu数据库的实现
- Leetcode(28)实现strStr()
- GO语言学习:go语言实现android应用的步骤
- 【LeetCode】[28] 实现strStr()
- Leetcode28. 实现strStr()
- LeetCode 28. 实现strStr()
- LeetCode 28 实现strStr()
- GO语言学习:使用io.copyN实现网络文件传输
- LeetCode 28 Implement strStr() (实现找子串函数)
- 【Go语言学习】LeetCode69. x 的平方根---二分法
- 【Go语言学习】LeetCode136. 只出现一次的数字
- go语言学习笔记之冒泡排序的实现