[面试常问总结] 1. 实现 strStr() Golang实现
实现 strStr() 函数。
给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。
示例 1:
示例2:
1、采用滑动窗口的做法,从左往右遍历字符串haystack,如果任何位置往右子串长度 len(needle) 位置的字符串和needle全匹配的话,则识别匹配成功,否则返回-1。
go语言实现代码:
//找出needle字符串在haystack字符串中的第一个位置,不存在返回-1 //例如: i:=Strstr("hello","lo"),返回3 func Strstr(haystack,needle string)int{ haystackByte:=[]byte(haystack) m:=len(haystackByte) n:=len(needle) //长度为0,或者子串长度大于父串 if m==0||n==0||n>m{ return -1 } //滑动窗口形式,最后结束位置是m-n,例如:[hello] 字串[aa] 父串结束是[lo] for i:=0;i<=m-n;i++{ //获取的字串,是当前索引位置加上needle长度 subStr:=haystackByte[i:i+n] if string(subStr)==needle{ return i } } return -1 }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网