当前位置: 首页 > news >正文

[Python][LeetCode]28. 找出字符串中第一个匹配项的下标

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 。
示例 1:
输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 06 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。
示例 2:
输入:haystack = "leetcode", needle = "leeto"
输出:-1
解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。
提示:
1 <= haystack.length, needle.length <= 104
haystack 和 needle 仅由小写英文字符组成

解题思路
把needle看成一个窗口块,在haystack上面不断滑动

def strStr(self, haystack, needle):""":type haystack: str:type needle: str:rtype: int"""# 如果needle是空字符串就返回0if not needle:return 0# 相当于滑动窗口算法,窗口长度len(needle),滑动范围len(haystack) - len(needle),+1是因为range是左闭右开区间for i in range(len(haystack) - len(needle) + 1):# Python字符串自带切片操作,切割出窗口大小的字符串if haystack[i:i+len(needle)] == needle:return ireturn -1
http://www.lryc.cn/news/271163.html

相关文章:

  • Prometheus监控mysql
  • 骑砍战团MOD开发(30)-游戏大地图map.txt
  • 关于 bringup sensor 时,曝光时间异常的问题排查
  • linux用户态与内核态通过字符设备交互
  • 如何高效查询文件:Linux 下的多种方法详解
  • 记矩阵基础概念
  • 用html,js和layui写一个简单的点击打怪小游戏
  • [线代]不挂科猴博士
  • 扩散式过滤器 水泵角通除污器 0阻力过滤器直角过滤器工作原理
  • MetalLB:本地Kubernetes集群的LoadBalancer负载均衡利器
  • C++判定终端ip和目标ip是否在同一局域网内
  • 深入解析 可空值类型
  • esp32idf使用thingscloud例程
  • 记一次应急响应练习(Linux)
  • Pandas教程(四)—— 分层索引及数据联合
  • 小梅哥Xilinx FPGA学习笔记16——FSM(状态机)的学习
  • vol----学习随记!!!
  • HarmonyOS4.0系统性深入开发10卡片事件能力说明
  • openGauss学习笔记-181 openGauss 数据库运维-升级-升级流程
  • 提前应对威胁
  • C语言与人生:数组交换和二分查找
  • Python实现【亚马逊商品】数据采集
  • Git使用教程 gittutorial
  • 有了向量数据库,我们还需 SQL 数据库吗?
  • 信息网络协议基础-IPv6协议
  • VC++ ado 实现单表CURD
  • C#使用switch多路选择语句判断何为季节
  • 可爱的魔法曲线 Lovely Magical Curves(12年开始只有5个人AC)
  • 通过C++程序实现光驱的自动化刻录和读取
  • 【电商项目实战】商品详情显示与Redis存储购物车信息