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 -= 1pRight -= 1else:return Falseif pRight == 0:return sRight == 0sIndex, pIndex = 0, 0sRecord, pRecord = -1, -1while sIndex < sRight and pIndex < pRight:if p[pIndex] == '*':pIndex += 1sRecord, pRecord = sIndex, pIndexelif charMatch(s[sIndex], p[pIndex]):sIndex += 1pIndex += 1elif sRecord != -1 and sRecord + 1 < sRight:sRecord += 1sIndex, pIndex = sRecord, pRecordelse:return Falsereturn allStars(p, pIndex, pRight)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Hadoop】- MapReduce YARN 初体验[9]

目录 提交MapReduce程序至YARN运行 1、提交wordcount示例程序 1.1、先准备words.txt文件上传到hdfs&#xff0c;文件内容如下&#xff1a; 1.2、在hdfs中创建两个文件夹&#xff0c;分别为/input、/output 1.3、将创建好的words.txt文件上传到hdfs中/input 1.4、提交MapR…

XYK欺诈检测简介

1. 背景 用30w左右的信用卡欺诈数据集测试下IF&#xff0c;看看每个参数的选择对最后结果的影响。信用卡欺诈是指故意使用伪造、作废的信用卡&#xff0c;冒用他人的信用卡骗取财物&#xff0c;或用本人信用卡进行恶意透支的行为&#xff0c;信用卡欺诈形式分为3种&#xff1a;…

开源协议的对比和商业上的安全使用

开源协议的对比和商业上的安全使用 开源组件是&#xff1a;“任何人都可以自由使用、更改和共享&#xff08;以修改或未修改的形式&#xff09;的软件”。当今企业依靠开源来加速开发、降低成本和推动创新。对开放源码的糟糕管理可能会使组织面临安全、法律和操作风险。 使用…

Python-VBA函数之旅-hash函数

目录 一、hash函数的定义&#xff1a; 二、hash函数的工作方式&#xff1a; ​三、hash函数的优缺点&#xff1a; 四、hash函数的常见应用场景&#xff1a; 1、hash函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&…

VTC视频时序控制器原理以及Verilog实现

文章目录 一、前言二、视频时序控制原理三、Verilog实现3.1 代码3.2 仿真以及分析 一、前言 VTC&#xff08;Video Timing Controller&#xff09;是一种用于产生视频时序的控制器&#xff0c;在FPGA图像领域经常用到。Xilinx Vivado 也有专门用于生成视频时序的 IP&#xff0c…

【GlobalMapper精品教程】076:基于高程和影像数据创建电子沙盘(真实三维地形)

影像与数字高程模型叠加,可以构建三维真是地形。本文讲解在Globalmapper中基于高程和影像数据创建电子沙盘(真实三维地形)。 文章目录 一、加载数据二、创建三维网格三、三维叠加显示一、加载数据 本实验的数据(配套实验数据资料包中的data076.rar,订阅专栏,获取全文及数…

Java -- (part16)

一.多线程基础知识 1.进程:在内存中执行的应用程序 2.线程:进程中的一个最小的执行单元 3.并行:在同一时刻,有多个指令在多个CPU上同时执行 4.并发:在同一时刻,有多个指令在单个CPU上交替执行 5.CPU调度 a.分时调度 b.抢占式调度:Java程序 6.主线程:CPU和内存之间开辟的…

MyBatis 核心配置讲解(上)

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的互金摸鱼侠。 前两篇的文章中我们分别介绍了 MyBatis 和 MyBaits 的应用组成&#xff0c;到这里基础篇的内容就结束了。 从今天开始&#xff0c;我们正式进入 MyBatis 学习的第二阶段&#xff1a;MyBatis 的…

真实世界的密码学(四)

原文&#xff1a;annas-archive.org/md5/655c944001312f47533514408a1a919a 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十六章&#xff1a;加密何时何地失败 本章涵盖 使用加密时可能遇到的一般问题 遵循烘烤良好的加密的要点 加密从业者的危险和责任 问候…

k8s集群资源编排清单文件解读

1、YAML 文件概述 k8s集群中对资源管理和资源对象编排部署都可以通过声明样式&#xff08;YAML&#xff09;文件来解决&#xff0c;也就是可以把需要对资源对象操作编辑到 YAML 格式文件中&#xff0c;我们把这种文件叫做资源清单文件&#xff0c;通过 kubectl 命令直接使用资源…

应对多样端子排设计挑战:SOLIDWORKS Electrical中的精准构建与呈现策略

本次我们来聊聊SOLIDWORKS Electrical的端子排应用&#xff0c;由于一般的自动化设备中所用到的端子排种类都不止是一种&#xff0c;因此在原理图中合理且规范地表示端子排显得尤为重要&#xff0c;这不仅可以减少工程师绘制端子排图纸的工作量&#xff0c;更是和SOLIDWORKS El…

【SAP ME 10】NWDI SLD配置(SC in SLD)

Creating a Software Component in the SLD 在配置完成DC组件参数后,接下里开始配置SLD参数