strstr函数_leetcode第28题实现strStr()
点击关注,我们共同每天进步一点点!
实现 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() 定义相符。
来源:力扣(LeetCode)
链接:
https://leetcode-cn.com/problems/implement-strstr
解答
def strstr(haystack, needle): """ python自带作弊方法 :type haystack: str :type needle: str :rtype: int """ return haystack.find(needle)
def strstr1(haystack, needle): """ 笨的方法,时间超时了 :type haystack: str :type needle: str :rtype: int """ i, j, index = 0, 0, -1 if needle == '': return 0 # 防止出现"mississippi", "issip"类似case,第一次查找不完全匹配,就从第一次匹配的+1位置重新开始 while index while i and j if haystack[i] == needle[j]: if j == 0: # needle第一次匹配上,haystack相应的下标 index = i j += 1 # needle匹配上,下标往后走 elif j != 0: # j!=0说明没有完全匹配,跳出此次循环 break i += 1 # needle的下标全部走完,才是完全匹配 if j == len(needle): return index # 如果index一直是-1说明一个字符也没匹配上;否则就是匹配不完全 if index == -1: return -1 else: i, j, index = index + 1, 0, -1 return -1
def strstr2(haystack, needle): """ 这是大神的 :type haystack: str :type needle: str :rtype: int """ if needle == '': return 0 elif needle not in haystack: return -1 else: lens = len(needle) for i in range(len(haystack)): if haystack[i] == needle[0] and haystack[i:i + lens] == needle: return i
if __name__ == "__main__": # haystack, needle = "hello", "ll" # haystack, needle = "aaaaa", "bba" haystack, needle = "mississippi", "issip" # haystack, needle = "mississippi", "" print strstr2(haystack, needle)
喜欢请关注,有用请转发~
升职、加薪、无漏测-点“在看”
strstr函数_leetcode第28题实现strStr()相关推荐
- LeetCode集锦(十) - 第28题 Implement StrStr
LeetCode集锦(十) - 第28题 Implement StrStr 问题 Implement strStr().Return the index of the first occurrence ...
- C语言 strstr函数的用法及模拟实现strstr函数
C语言 strstr函数的用法及模拟实现strstr函数 一.strstr函数的用法 二.模拟实现strstr函数的功能 一.strstr函数的用法 1.strstr函数原型:char* strstr ...
- strstr函数_[LeetCode] 28. 实现strStr()
题目链接: https://leetcode-cn.com/problems/implement-strstr/ 题目描述 实现 strStr() 函数. 给定一个 haystack 字符串和一个 n ...
- LeetCode第28题 实现strStr()之KMP算法(C++)【代码已提交成功】
目录 初步思路 朴素匹配算法 KMP算法 NEXT数组 利用NEXT数组改进朴素匹配算法 初步思路 这是一道难度为简单的题,所以不熟悉的话可能第一反应就是朴素匹配的算法.但因为考研的时候学过数据结构, ...
- strchr strstr函数php,PHP字符串函数之 strstr stristr strchr strrchr
strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...
- C语言中的strstr函数的用法
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. PHP语言函数 编辑 strstr() ...
- strstr函数.c
包含文件: string.h 函数名: strstr 函数原型: 1 extern char * strstr ( char *str1, const char *str2); 语法: 1 ...
- strstr函数的原理原来是这样的
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.strstr函数是什么? 二.strstr函数的参数及实现原理 1.参数 2.strstr函数的模拟使用 总结 前 ...
- C语言strstr函数
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. C语言函数 包含文件:string.h ...
最新文章
- java i o不会的地方_Java I/O 好复杂,傻傻分不清楚,别担心,我们有线索了。。。...
- 用Java实现天天酷跑(附源码),这个真的有点强了!
- 为什么C语言是非形式化的,《数据结构C语言版》——绪论
- R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析:拟合连续性自变量和事件风险之间的关系并绘制直方图、平滑曲线、双Y轴于同一个图像中
- swapCursor vs changeCursor, what’s the difference?
- java 继承示例_Java中的继承类型以及示例
- Doris之分区缓存(全面)
- Linux文件解压缩
- 如何使用vs进行代码比较
- 旅游网站源码在哪下载,完整的
- mathcad15安装方法(解决了认证错误问题)
- 经纬财富:昭通炒现货白银技巧
- 磨刀不误砍柴工(1)stress 和 pidstat
- VM虚拟机设置桥接模式
- 大学计算机知识点cad,大学cad考试试题「附答案」
- 扫雷小游戏(两小时完成)
- java 自省_java spring mvc 自省机制填充
- 关于强化神兽(圣兽)DBC参数详解
- 如何获取维普免费账号--应对大家工作后在校外下载维普万方等全文
- 【python】利用python计算A类不确定度