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

题目:

题解:

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.hqwc.cn/news/641087.html

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

相关文章

web前端学习笔记1

前端学习笔记 1. 走进HTML 1.1 什么是HTML 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。HTML文档的后缀名 .html.htm以上两种后缀名没有区别…

YOLOv5改进 | Conv篇 | 利用CVPR2024-DynamicConv提出的GhostModule改进C3(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是CVPR2024的最新改进机制DynamicConv其是CVPR2024的最新改进机制&#xff0c;这个论文中介绍了一个名为ParameterNet的新型设计原则&#xff0c;它旨在在大规模视觉预训练模型中增加参数数量&#xff0c;同时尽量不增加浮点运算&#x…

基于 Spring Boot 博客系统开发(二)

基于 Spring Boot 博客系统开发&#xff08;二&#xff09; 本系统是简易的个人博客系统开发&#xff0c;为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。&#x1f33f;&#x1f33f;&#x1f33f; 基于 Spring Boot 博客系统开发&#xff08;一&#xff09;&#x1f4…

Redis入门到通关之Redis数据结构-List篇

文章目录 ☃️概述☃️数据结构☃️源码☃️其他 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端…

html--奔腾的骏马

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>奔腾的骏马</title><link rel"stylesheet" href"css/style.css"></head> <body><input type"…

Java Web 网页设计(2)

​2.在网页上做表格&#xff1a; 输入标记及内容 点击运行 中华人民共和国​ <h1>中华人民共和国</h1> <!--一级标题的标记--><a href"add_user.jsp">点击我</a><a href"add_user1.jsp">点击我</a> (1)标题的标…

实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台

本文带来的是基于全志T507-H&#xff08;硬件平台&#xff1a;创龙科技TLT507-EVM评估板&#xff09;&#xff0c;Linux-RT内核的硬件GPIO输入和输出实时性测试及应用开发案例的分享。本次演示的开发环境如下&#xff1a; Windows开发环境&#xff1a;Windows 7 64bit、Window…

【正点原子STM32探索者】体验RT-Thread最新5.x版本

【正点原子STM32探索者】体验RT-Thread最新5.x版本 一、准备RT-Thread Env工具二、创建RT-Thread项目2.1 下载RT-Thread源码2.2 生成RT-Thread项目 三、编译和运行RT-Thread项目3.1 编译RT-Thread项目3.2 下载程序到开发板3.3 运行RT-Thread项目 四、体验RT-Thread的交互式shel…

DevOps(十)Jenkins实战之发布Django开发Web应用

面学习了Jenkins&#xff0c;Gitlab&#xff0c;Git&#xff0c;Selenium等等DevOps有关的工具。今天我们使用一个完整的Web应用发布流程来讲解怎么样将这些工具怎么配合使用。下面是这个流程的简单介绍&#xff1a;首先我们用Django开发一个简单的Web应用&#xff0c;然后发布…

KingbaseES数据库匿名块的基本用法

数据库版本&#xff1a;KingbaseES V008R006C008B0014 简介 匿名块是一种特殊的代码块&#xff0c;用于在数据库中执行一系列的SQL语句或PLSQL语句。它们通常用于执行一些简单的逻辑或者在数据库中执行一些事务性操作&#xff08;在匿名块中定义的一系列语句可以被视为1个事务&…

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

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

vi, vim,data,wc,系统常用命令-读书笔记(十)

vi 文本编辑器 基本上 vi 共分为三种模式&#xff0c;分别是“一般指令模式”、“编辑模式”与“命令行命令模式”。这三种模式的作用分别是&#xff1a; 一般指令模式&#xff08;command mode&#xff09;以 vi 打开一个文件就直接进入一般指令模式了&#xff08;这是默认的…