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

LeeCode题库第二十八题

28.找出字符串第一个匹配项的下标 

项目场景:

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回  -1 

示例 1:

输入:haystack = "sadbutsad", needle = "sad"
输出:0
解释:"sad" 在下标 0 和 6 处匹配。
第一个匹配项的下标是 0 ,所以返回 0 。

示例 2:

输入:haystack = "leetcode", needle = "leeto"
输出:-1
解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。

提示:

  • 1 <= haystack.length, needle.length <= 104
  • haystack 和 needle 仅由小写英文字符组成


问题描述

        这道题采用遍历的方式,利用一个标志数字tag,如果遍历结束后tag为1则说明成功,否则在遍历过程中一定是遇到了不同的字符。如果m<n,说明字符串长度更短,则 直接返回-1,遍历过程中,字符相等则两个字符串都要后移一位,如果不相等则退出当前子循环,最后根据tag的值来确定返回字符串长度i-m还是返回-1。

class Solution:
    def strStr(self, haystack: str, needle: str) -> int:
        m,n=len(haystack),len(needle)
        if m<n:
            return -1
        for i in range(m):
            tag=1
            for j in range(n):
                if i<m:
                    if haystack[i]==needle[j]:
                        i+=1
                        continue
                    else:
                        tag=0
                        break
                else:
                    tag=0
                    break
            if tag==1:
                return i-n
        return -1
            





        

        本题提交情况。

 

        以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光!  

相关文章:

  • 使用Open WebUI下载的模型文件(Model)默认存放在哪里?
  • Python strip() 方法详解:用途、应用场景及示例解析(中英双语)
  • react(9)-redux
  • Java四大框架深度剖析:MyBatis、Spring、SpringMVC与SpringBoot
  • react 踩坑记 too many re-renders.
  • Three.js 快速入门教程【七】常见几何体类型
  • ROS 2入门 - 机器人操作系统ROS2的安装
  • Mac下Python版本管理,适用于pyenv不起作用的情况
  • Dify怎么创建数据交易的智能体
  • [GESP202406 六级] 二叉树
  • [C++]使用纯opencv部署yolov12目标检测onnx模型
  • 开启开源新时代:DeepSeek引领人工智能技术开放化
  • YOLOv8与BiFormer注意力机制的融合:提升多场景目标检测性能的研究
  • Visual studio 2022 将打开文件的方式由单击改为双击
  • Java 数学函数库
  • 【电机控制器】ESP32-C3语言模型——豆包
  • k8s容器运行时环境选型指南
  • Hutool - DFA:基于 DFA 模型的多关键字查找
  • Eclipse 透视图 (Perspective)
  • 北斗模块的“低功耗“秘诀:如何在物联网设备中延长续航?
  • 网站建设产品介绍/百度关键词搜索引擎
  • 重庆企业网站建设/北京建站公司
  • 在c盘做网站可以吗/seochan是什么意思
  • 西安做网站优化/seo优化有哪些
  • 锦州北京网站建设/北京百度快速排名
  • 自己做网站兼职/足球积分排行榜最新