首页 > 其他分享 >【刷题笔记】28. Implement strStr()

【刷题笔记】28. Implement strStr()

时间:2023-08-22 13:31:37浏览次数:36  
标签:子串 strStr string needle 28 return Implement haystack

题目

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 。

解题思路

这一题比较简单,直接写即可。

参考代码

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)
}

标签:子串,strStr,string,needle,28,return,Implement,haystack
From: https://blog.51cto.com/u_16110811/7189164

相关文章

  • ZLMediaKit + wvpgb28181流媒体平台搭建
    流媒体平台流程简介主要用途:对接监控摄像头、视频直播、多对多视频聊天室系统架构由3个部分组成:接口服务器、信令服务器、流媒体服务器;1.接口服务器主要用于响应客服端的请求;2.信令服务器主要用于智慧流媒体服务器和视频设备交互;3.流媒体服务器主要用于处理媒体流的接收、转换、分......
  • GB28181国标平台测试软件NTV-GBC(包含服务器和模拟客户端)
    GB28181国标平台测试软件NTV-GBC用于对GB28181国标平台进行测试(测试用例需要服务器软件,服务器软件可以是任何标准的国标平台,我们测试使用的是NTV-GBS),软件实现了设备注册、注销、目录查询,消息订阅、INVITE,BYE、KEEPLIVE、OPTION信令。本文档介绍的模拟软件的使用方法。首先下载GBC......
  • 国标GB28181视频平台EasyGBS通过对应密钥上传到其他平台展示的详细步骤来啦!
    国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台,支持多路设备同时接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能,在视频能力上,GB28181......
  • 国标GB28181安防视频平台EasyGBS通过对应密钥上传到其他平台展示的详细步骤来啦!
    国标GB28181协议视频平台EasyGBS是基于国标GB28181协议的视频云服务平台,支持多路设备同时接入,并对多平台、多终端分发出RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。平台可提供视频监控直播、云端录像、云存储、检索回放、智能告警、语音对讲、平台级联等功能,在视频能力上,GB281......
  • 国标GB28181安防视频平台EasyGBS显示状态正常,却无法播放该如何解决?
    国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的......
  • 狗狗求职记:AI 面试、人类辅助,美研究所利用 628 只拉布拉多数据,提升嗅觉检测犬选拔效率
    内容一览:犬类嗅觉灵敏,是执行困难任务的得力助手。然而,工作犬选拔需要经过严格的筛选和训练,淘汰率极高。利用监督式机器学习和任务数据,可以用来预测人类工作表现,然而,目前尚未发现类似的犬类研究。关键词:工作犬  监督式机器学习  随机森林本文首发于HyperAI超神经微信公众平......
  • 杭电ACM HDU 2816 I Love You Too
    ILoveYouTooTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1258   AcceptedSubmission(s):759ProblemDescriptionThisisatruestory.Amanshowedhislovetoagirl,butthegirldi......
  • 在f1c100s芯片上移植spi网卡enc28j60的linux驱动
    前言我个人与全志的芯片颇有故事。在我还是一个不懂事的高中生时,我看到荔枝派的官方文档,顿时被这小小的板子给吸引住。点开文档的初见:荔枝派Nano(下面简称Nano)是一款精致迷你的Arm9核心板/开发板,可用于初学者学习linux或者商用于产品开发。Nano在与SD卡相当的尺寸上(25.4*3......
  • ffpyplayer源码编译报错:ffpyplayer/tools.pyx:182:28: Cannot assign type 'void (*)(
    编译ffpyplayer报错,具体错误如标题。  报错信息:ffpyplayer/tools.pyx:182:28:Cannotassigntype'void(*)(void*,int,constchar*,va_list)except*nogil'to'void(*)(void*,int,constchar*,va_list)noexceptnogil'  解决方法:pipinstallblos......
  • MIT6.s081/6.828 lectrue5/6:System call entry/exit 以及 Lab4 心得
    这篇博客主要复习lecture05:GDBcallingconentions和lecture06:Systemcallentry/exit的内容,外加Lab4:traps的心得前置知识这里的前置知识是指lecture05:GDBcallingconentions的内容,是由TA来上的,是作为lecture06的前置知识,主要讲解了以下三点内容:指令集架构的概念......