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

ops/2024/10/21 14:32:37/

题目:

题解

func isMatch(s string, p string) bool {for len(s) > 0 && len(p) > 0 && p[len(p)-1] != '*' {if charMatch(s[len(s)-1], p[len(p)-1]) {s = s[:len(s)-1]p = p[:len(p)-1]} else {return false}}if len(p) == 0 {return len(s) == 0}sIndex, pIndex := 0, 0sRecord, pRecord := -1, -1for sIndex < len(s) && pRecord < len(p) {if p[pIndex] == '*' {pIndex++sRecord, pRecord = sIndex, pIndex} else if charMatch(s[sIndex], p[pIndex]) {sIndex++pIndex++} else if sRecord != -1 && sRecord + 1 < len(s) {sRecord++sIndex, pIndex = sRecord, pRecord} else {return false}}return allStars(p, pIndex, len(p))
}func allStars(str string, left, right int) bool {for i := left; i < right; i++ {if str[i] != '*' {return false}}return true
}func charMatch(u, v byte) bool {return u == v || v == '?'
}

http://www.ppmy.cn/ops/10161.html

相关文章

《HCIP-openEuler实验指导手册》1.3Apache动态功能模块加载卸载练习

1.3.1 配置思路 mod_status 模块可以帮助管理员通过web界面监控Apache运行状态&#xff0c;通过LoadModule指令加载该模块&#xff0c;再配置相关权限&#xff0c;并开启ExtendedStatus后&#xff0c;即可使用该模块。 1.3.2 配置步骤 检查mod_status模块状态&#xff08;使…

模拟相机拍照——对文档进行数据增强

一. 背景 假如我们有一个标准文件&#xff0c;我们对其进行文字识别、版面分析或者其他下游任务就比较容易。然而&#xff0c;当图片是手机拍照获取的&#xff0c;图片中往往有阴影、摩尔纹、弯曲。 那么&#xff0c;如何通过标准的文档&#xff0c;获得类似相机拍照的图片呢&…

04-2.Vue2.x data与el的2种写法

文章目录 data与el的2种写法 data与el的2种写法 <!DOCTYPE html> <html lang"en"><head><!-- data与el的2种写法1. el有2种写法&#xff1a;1)new Vue时直接传递el属性----常用2)通过vm.$mount(#root)指定容器 ----不常用2.data有2种写法&…

设计模式(工厂方法-Factory Method)结构|原理|优缺点|场景|示例

目录 设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型 适配器模式 装饰器模式 代理模式 设计模式中的工厂方法&…

Pytorch重点概念笔记:都是本人学习中真实遇到的(一)

1.torch.squeeze的原理参数和使用方法 torch.squeeze 是PyTorch中的一个函数,用于减少张量的维数,具体来说,它会移除所有维数为1的维度。这个操作通常用于处理那些在特定操作(如卷积或池化)后可能产生不必要的单维度张量。 原理: 在某些情况下,张量操作会生成形状中包…

什么是全局特征,什么又是局部特征

全局特征和局部特征是用来描述数据中信息的两种不同方式&#xff0c;特别是在图像处理、模式识别和机器学习领域中经常被提到。它们有助于理解和分析数据的不同层面&#xff1a; 全局特征&#xff08;Global Features&#xff09; 全局特征描述了整个数据集的整体属性。在图像…

Mac 利用Homebrew安装JDK

一、安装JDK17 1.安装openjdk17 2.把homebrew安装的openjdk17软链接到系统目录&#xff1a; brew install openjdk17 sudo ln -sfn $(brew --prefix)/opt/openjdk17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk 一、检查是否安装成功 在Termina…

OpenShift 4 - 了解 OpenShift 是如何使用节点本地镜像缓存

《OpenShift / RHEL / DevSecOps 汇总目录》 文本已在 OpenShift 4.15 环境中进行验证。 什么是节点本地镜像缓存 一个 OpenShift 集群节点在运行 Pod 前需要先从 Registry 拉取到相关 Image。这些镜像会保存在节点本地存储中并作为缓存&#xff0c;这样该节点如果再使用这个…