当前位置:网站首页>实现strStr() II
实现strStr() II
2022-07-02 06:19:00 【沙子是沙子】
给定一个 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() 定义相符。
解决方法:
算法思想:
原strstr()函数。
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
KMP算法。
参考:
http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html
C++代码:

边栏推荐
猜你喜欢

Invalid operation: Load into table ‘sources_ orderdata‘ failed. Check ‘stl_ load_ errors‘ system table

Lucene Basics

深入学习JVM底层(四):类文件结构

Deep learning classification network -- vggnet

官方零基础入门 Jetpack Compose 的中文课程来啦!

一口气说出 6 种实现延时消息的方案

Introduce two automatic code generators to help improve work efficiency

Web components series (VIII) -- custom component style settings

Data playback partner rviz+plotjuggler

注解和反射详解以及运用
随机推荐
Data playback partner rviz+plotjuggler
锐捷EBGP 配置案例
IPv6 experiment and summary
实习生跑路留了一个大坑,搞出2个线上问题,我被坑惨了
LeetCode 83. 删除排序链表中的重复元素
【每日一题】写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。
Codeforces Round #797 (Div. 3) A—E
CUDA中的线程层次
sudo提权
BGP中的状态机
亚马逊aws数据湖工作之坑1
LeetCode 90. Subset II
Google Play Academy 组队 PK 赛,正式开赛!
社区说|Kotlin Flow 的原理与设计哲学
日志(常用的日志框架)
官方零基础入门 Jetpack Compose 的中文课程来啦!
Golang -- map capacity expansion mechanism (including source code)
BGP 路由优选规则和通告原则
【张三学C语言之】—深入理解数据存储
Eco express micro engine system has supported one click deployment to cloud hosting