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

给你两个字符串 haystackneedle ,请你在 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

  • haystackneedle 仅由小写英文字符组成

    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
相关推荐
小陈工1 分钟前
Docker容器化部署Python应用——从开发到生产的全流程
运维·开发语言·python·docker·云原生·容器·数据挖掘
代码方舟2 分钟前
Java金融风控实战:集成天远二手车估值API构建车贷抵押资产核验系统
java·开发语言·python·自动化
docsz3 分钟前
Flink-1.20集群部署
linux·服务器·flink
坤坤藤椒牛肉面3 分钟前
常用知识点
linux
码踏樱花3 分钟前
PyCharm专业版Win/mac/Linux 2017-2025多版本安装教程【长期使用】
ide·python·pycharm
2401_846341654 分钟前
使用Python进行网络设备自动配置
jvm·数据库·python
困死,根本不会5 分钟前
Windows下模拟树莓派:使用ble-serial创建虚拟串口实现手机蓝牙通信
windows·python·单片机·嵌入式硬件·树莓派
行思理6 分钟前
Linux查看网站访问IP的命令大全
linux·服务器·前端
钱多多_qdd7 分钟前
第一次使用mac,安装java相关的东西
java·python·macos
Q741_1477 分钟前
力扣高频面试题详解 数组 链表 力扣 56.合并区间 力扣 160.相交链表 C++ 每日练习
c++·算法·leetcode·链表·数组·哈希