Python | Leetcode Python题解之第44题通配符匹配

题目:

题解:

class Solution:
    def isMatch(self, s: str, p: str) -> bool:
        def allStars(st: str, left: int, right: int) -> bool:
            return all(st[i] == '*' for i in range(left, right))
        
        def charMatch(u: str, v: str) -> bool:
            return u == v or v == '?'

        sRight, pRight = len(s), len(p)
        while sRight > 0 and pRight > 0 and p[pRight - 1] != '*':
            if charMatch(s[sRight - 1], p[pRight - 1]):
                sRight -= 1
                pRight -= 1
            else:
                return False
        
        if pRight == 0:
            return sRight == 0
        
        sIndex, pIndex = 0, 0
        sRecord, pRecord = -1, -1
        while sIndex < sRight and pIndex < pRight:
            if p[pIndex] == '*':
                pIndex += 1
                sRecord, pRecord = sIndex, pIndex
            elif charMatch(s[sIndex], p[pIndex]):
                sIndex += 1
                pIndex += 1
            elif sRecord != -1 and sRecord + 1 < sRight:
                sRecord += 1
                sIndex, pIndex = sRecord, pRecord
            else:
                return False

        return allStars(p, pIndex, pRight)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/566428.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1125页Go语言技术手册,涵盖Go语言所有核心知识点,限时免费下载!

从Docker的兴起&#xff0c;到Kubernetes的冲击&#xff0c;让Go语言在后端的地位&#xff0c;尤其在偏中高级业务需求(对性能、代码质量、架构设计等)中已经不可撼动。后端开发工程师逐渐开始对Go语言产生兴趣&#xff0c;无论是擅长何种语言的后端工程师&#xff0c;个人认为…

德思特车载天线方案:打造智能互联的公共安全交通网络

作者介绍 一、方案介绍 随着自动驾驶与智慧汽车概念的逐步推进&#xff0c;人们对汽车的交互性、智能性、互联性有了更高的要求。今天&#xff0c;大多数汽车制造商和供应商普遍将GNSS定位功能与其他信号如广播、电视、蓝牙、Wifi一起集成到汽车中&#xff0c;包括博世、大陆、…

泽攸科普——扫描电子显微镜(SEM)全攻略:轻轻松松搞定形貌特征

在科学的殿堂里&#xff0c;有一台神奇的仪器&#xff0c;它能将我们的视野拓展到难以想象的微观尺度&#xff0c;让我们得以窥探那些肉眼无法捕捉的精妙结构和隐秘细节。这台仪器就是扫描电子显微镜&#xff08;Scanning Electron Microscope, SEM&#xff09;。它犹如一双洞察…

车灯专用方案12V24V36V48V转9V/12V 线性恒流H7306

电流控制&#xff1a;为了保持输出电流的恒定&#xff0c;转换器使用一种称为恒流控制的技术。恒流控制通常通过测量输出电流并与一个参考电流进行比较来实现。如果输出电流超过参考电流&#xff0c;控制电路将调整输出电压或电流&#xff0c;以降低输出电流至所需的恒定值。 …

2023年蓝桥杯C++A组第三题:更小的数(双指针暴力遍历解法)

题目描述 小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串&#xff0c;下标从 0 到 n − 1&#xff0c;你可以将其视作是一个具有 n 位的十进制数字 num&#xff0c;小蓝可以从 num 中选出一段连续的子串并将子串进行反转&#xff0c;最多反转一次。小蓝想要将选出的…

云盘怎么选最好!

选择云盘时&#xff0c;您应该考虑以下几个关键因素来确保选中最适合您需求的服务&#xff1a; 速度&#xff1a;选择云盘时&#xff0c;传输速度是一个重要的考量点。您应该选择一个即使不使用会员服务也能提供较快上传和下载速度的云盘服务。 存储空间&#xff1a;不同的云盘…

Ardupilot OpenIPC 基于WFB-NG构架分析和数据链路思考

Ardupilot & OpenIPC & 基于WFB-NG构架分析和数据链路思考 1. 源由2. OpenIPC安装2.1 安装2.2 配置2.2.1 天空端配置文件2.2.2 地面端配置文件 2.3 当前配置选择 3. WFB-NG安装3.1 RTL8812AU安装3.1.1 驱动安装3.1.2 定位设备 3.2 wfb-ng安装3.2.1 传输层安装3.2.2 配置…

WordPress social-warfare插件XSS和RCE漏洞【CVE-2019-9978】

WordPress social-warfare插件XSS和RCE漏洞 ~~ 漏洞编号 : CVE-2019-9978 影响版本 : WordPress social-warfare < 3.5.3 漏洞描述 : WordPress是一套使用PHP语言开发的博客平台&#xff0c;该平台支持在PHP和MySQL的服务器上架设个人博客网站。social-warfare plugin是使用…

Kimi Chat四大更新详细解读!模型能力提升,支持语音输入输出!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

clickhouse数据去重函数介绍(count distinct)

非精确去重函数&#xff1a;uniq、uniqHLL12、uniqCombined 精确去重函数&#xff1a;uniqExact、groupBitmap 测试数据量&#xff1a;2000w 结论&#xff1a; 1.整形值精确去重场景&#xff0c;groupBitmap 比 uniqExact至少快 2x 2.groupBitmap仅支持无符号整形值去重&#x…

【LAMMPS学习】八、基础知识(3.6)计算热导率

8. 基础知识 此部分描述了如何使用 LAMMPS 为用户和开发人员执行各种任务。术语表页面还列出了 MD 术语&#xff0c;以及相应 LAMMPS 手册页的链接。 LAMMPS 源代码分发的 examples 目录中包含的示例输入脚本以及示例脚本页面上突出显示的示例输入脚本还展示了如何设置和运行各…

我的一些 35+ 前同事的现状

大家好&#xff0c;我是坤哥&#xff0c;好久不见&#xff0c;今天简单和大家聊一下我目前观察到的前同事的现状 今年和一些前同事简单聊过&#xff0c;他们的现状如下&#xff1a; A: 去新西兰做 iOS 开发快 10 年了&#xff0c;马上就要拿到永久居留证了&#xff0c;他说在新…

hcip实验 — 路由策略实验

目录 实验拓扑 实验要求 实验思路 实验步骤 1.配置接口及环回ip 2.配置ospf协议及rip协议 3.在R2上进行路由引入 4.在R2上进行路由过滤 5.在R4上进行路由过滤&#xff08;地址前缀列表&#xff09; 6.在R2 RIP进程上配置静默接口使RIP报文无法进入OSPF区域 实验拓扑 …

Hadoop实战——MapReduce-字符统计(超详细教学,算法分析)

目录 一、前提准备工作 启动hadoop集群 二、实验过程 1.虚拟机安装先设置端口转发 2.上传对应文件 3.编写Java应用程序 4. 编译打包程序 5. 运行程序 三、算法设计和分析 算法设计 算法分析 四、实验总结 实验目的&#xff1a;给定一份英文文本&#xff0c;统计每个…

ResNet详解

一、认识ResNet ResNet&#xff08;Residual Network&#xff09;是一种深度神经网络结构&#xff0c;被广泛应用于图像分类、目标检测和语义分割等计算机视觉任务中。它是由微软亚洲研究院的何凯明等人于2015年提出的&#xff0c;通过引入残差连接&#xff08;residual conne…

携程 Java 暑期实习一面:HashMap 的 key 可以设置为 null 吗?那 ConcurrentHashMap 呢?

更多大厂面试内容可见 -> http://11come.cn 携程 Java 暑期实习一面&#xff1a;HashMap 的 key 可以设置为 null 吗&#xff1f;那 ConcurrentHashMap 呢&#xff1f; Java 基础 1、Java 中有哪些常见的数据结构&#xff1f; 图片来源于&#xff1a;JavaGuide Java 中常…

【数学归纳法 反证法】菲蜀定理

裴蜀定理&#xff08;或贝祖定理&#xff0c;Bzout’s identity&#xff09;得名于法国数学家艾蒂安裴蜀&#xff0c;说明了对任何整数a、b和它们的最大公约 数d&#xff0c;关于未知数x和y的线性不定方程&#xff08;称为裴蜀等式&#xff09;&#xff1a;若a,b是整数,且&…

C++异常和断言

C异常 异常的理念看似有前途&#xff0c;但实际的使用效果并不好。编程社区达成的一致意见是&#xff0c;最好不要使用这项功能。C98引入异常规范&#xff0c;C11已弃用。 例如&#xff1a;我们输入1时抛出异常。 #include <iostream> #include <vector> #includ…

macbook内存怎么清理?2024年有哪些好用的软件

当你的MacBook运行缓慢时&#xff0c;这很可能是因为内存&#xff08;RAM&#xff09;满了。内存是计算机的临时存储区&#xff0c;用于存放当前正在使用的程序和数据。当内存满时&#xff0c;MacBook就会使用硬盘作为临时内存&#xff0c;这大大降低了运行速度。那么&#xff…

Hadoop3:HDFS、YARN、MapReduce三部分的架构概述及三者间关系(Hadoop入门必须记住的内容)

一、HDFS架构概述 Hadoop Distributed File System&#xff0c;简称HDFS&#xff0c;是一个分布式文件系统。 1&#xff09;NameNode(nn)&#xff1a;存储文件的元数据&#xff0c;如文件名&#xff0c;文件目录结构&#xff0c;文件属性&#xff08;生成时间、副本数、文件…
最新文章