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

给你两个字符串 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 仅由小写英文字符组成

    python 复制代码
    class Solution:
        def strStr(self, haystack: str, needle: str) -> int:
            if(needle not in haystack):
                return -1
            length1 = len(needle)
            length2 = len(haystack)
            j = 0
            flag = False//定义flag标记是否匹配失败
            for i in range(length2):
                if(haystack[i]==needle[0])://暴力查找
                    flag = True//每次进行匹配重置flag
                    for j in range(length1):
                        if((i+j<length2) and (haystack[i+j]!=needle[j]))://注意下标不要越界
                            flag = False
                            break
                    if(flag):
                        return i
相关推荐
wuyk55514 分钟前
Python网络爬虫入门到实战 第02章:HTTP/HTTPS协议超通俗精讲(GET/POST、请求头、响应码、爬虫核心基础)
爬虫·python·http
工作10年+,存储芯片行业17 分钟前
Linux NVMe 中断排查与性能优化:IRQ 优化(原理+排查)
linux·运维·性能优化·ssd·nvme·pcie·中断
昔我往昔42 分钟前
init文件介绍
python·flask
宵时待雨43 分钟前
linux笔记归纳25:多路转接epoll
linux·服务器·网络·c++
xqqxqxxq1 小时前
LeetCode Hot100 矩阵专题题解笔记
笔记·leetcode·矩阵
虫无涯1 小时前
大模型联动 CodeQL + Coverity 完整落地方案
人工智能·python·大模型·llm·codeql·coverity
geats人山人海1 小时前
linux 1.目录结构
linux·运维·服务器
wuminyu1 小时前
JEP491中synchronized关键字引发的平台线程钉住解决方法简介
java·linux·c语言·jvm·c++
段一凡-华北理工大学1 小时前
大模型与智能体在工业的应用~系列文章12:大模型 × 数字孪生 × 智能体的融合图景
大数据·人工智能·python·深度学习·大语言模型·python开发
流形填表1 小时前
多校区题库标准化:Excel模板与校验脚本
开发语言·python