C++ | Leetcode C++题解之第44题通配符匹配

题目:

题解:

class Solution {
public:bool isMatch(string s, string p) {auto allStars = [](const string& str, int left, int right) {for (int i = left; i < right; ++i) {if (str[i] != '*') {return false;}}return true;};auto charMatch = [](char u, char v) {return u == v || v == '?';};while (s.size() && p.size() && p.back() != '*') {if (charMatch(s.back(), p.back())) {s.pop_back();p.pop_back();}else {return false;}}if (p.empty()) {return s.empty();}int sIndex = 0, pIndex = 0;int sRecord = -1, pRecord = -1;while (sIndex < s.size() && pIndex < p.size()) {if (p[pIndex] == '*') {++pIndex;sRecord = sIndex;pRecord = pIndex;}else if (charMatch(s[sIndex], p[pIndex])) {++sIndex;++pIndex;}else if (sRecord != -1 && sRecord + 1 < s.size()) {++sRecord;sIndex = sRecord;pIndex = pRecord;}else {return false;}}return allStars(p, pIndex, p.size());}
};

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

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

相关文章

时隔5年,MobileNet V4发布!

B站&#xff1a;啥都会一点的研究生公众号&#xff1a;啥都会一点的研究生 距离MobileNet系列上一代版本MobileNet V3的发布已经过去五年 熟悉该系列的同学应该知道&#xff0c;MobileNet致力于维持神经网络在精度和效率之间的微妙平衡&#xff0c;为了让用户在移动设备上拥有…

游戏帧数低怎么解决?

启用高性能模式 winR——输入control——查看方式&#xff1a;小图标——电源选项——隐藏附加计划——高性能模式 设置游戏模式 wins——游戏模式开启 设置显示卡 设置——系统——显示卡——添加应用&#xff0c;浏览——选项——高性能 NVIDIA控制面板设置 NVIDIA控制…

SHOW ME THE CODE - 面向对象程序设计之 - 单一职责原则

今天我们从代码的角度来讲一讲&#xff0c;到底什么是&#xff1a;单一职责原则 SRP的定义 Single Responsibility Principle, 单一职责原则 单一职责原则&#xff08;Single Responsibility Principle&#xff0c;SRP&#xff09;最早是由罗伯特C马丁&#xff08;Robert C. …

贪吃蛇撞墙功能的实现 和自动行走刷新地图 -- 第三十天

1.撞墙 1.1最初的头和尾指针要置为空&#xff0c;不然是野指针 1.2 在增加和删除节点后&#xff0c;判断是否撞墙&#xff0c;撞墙则初始话蛇 1.3在撞墙后初始化蛇&#xff0c;如果头不为空就撞墙&#xff0c;得定义临时指针指向头&#xff0c;释放头节点 2.自动刷新地图 2.1…

C# 通过阿里云接口实现人脸属性识别

目录 应用场景 关于阿里云人脸属性识别 开发运行环境 类设计 类属性 类方法 实现代码 创建AFR类 调用举例 小结 应用场景 在个人简历注册系统中&#xff0c;上传个人照片是我们经常遇到的一项功能。为了提高数据采集的有效性&#xff0c;我们需要的功能不仅是能够提…

从Kafka的可靠性设计体验软件设计之美

目录 1. Kafka可靠性概述 2. 副本剖析 2.1 什么是副本 2.2 副本失效场景 2.3 数据丢失场景 2.4 解决数据丢失方案 3. 日志同步机制 4. 可靠性分析 1. Kafka可靠性概述 Kafka 中采用了多副本的机制&#xff0c;这是大多数分布式系统中惯用的手法&#xff0c;以此来实现水平扩…

Web-SpringBootWen

创建项目 后面因为报错&#xff0c;所以我把jdk修改成22&#xff0c;仅供参考。 定义类&#xff0c;创建方法 package com.start.springbootstart.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotati…

java-Spring-(MyBatis框架-xml管理)

目录 前置条件 xml与注解比较 1.1 xml定义 1.2 和SQL注解比较 建包准备 插入数据 ​编辑 更新数据 删除数据 查询数据 查看单字段查询 &#x1f3f7;&#x1f4a3;前置条件 创建一个spring boot 初始化的项目 &#x1f3f7;&#x1f4a3;xml与注解比较 1.1 xml定义 …

以太网口硬件知识分享

一、了解网口通信基本原理 实现网络通信实质上是PHY与MAC及RJ45接口实现信号传输。MAC 就是以太网控制器&#xff0c;MAC属于数据链路层&#xff0c;主要负责把数据封装成帧&#xff0c;对帧进行界定实现帧同步。对MAC地址和源MAC地址及逆行相应的处理并对错误帧进行处理。PHY…

2017美亚杯--个人赛

1、Gary的笔记本电脑已成功取证并制作成镜像 (Forensic Image)&#xff0c;下列哪个是其MD5哈希值。A.0CFB3A0BB016165F1BDEB87EE9F710C9 B.5F1BDEB87EE9F710C90CFB3A0BB01616 C.A0BB016160CFB3A0BB0161661670CFB3 D.16160CFB3A0BB016166A0BB016166167 E.FB3A0BB016165 B016166…

38 事件

1.1 键盘事件及对象 onkeydown:只要按下任意键&#xff0c;就会触发一次 onkeypress&#xff1a;生成一个字符时触发&#xff0c;最常用 //键盘事件对象 document.onkeypress function(evt){ // console.log(evt); //录入的字符 console.log(evt.key); //录入的ASC码值 var…

[Flutter3] 记录Dio的简单封装(一)

文章目录 效果使用ResponseEntity类DioManager封装_onResponse / _onDioException 的设计Response的处理catch处理 效果 请求成功/失败/异常的日志输出效果 成功: 失败:500 失败:404 网络异常: 使用 举个使用的例子, 在调用 DioManager的时候, 直接通过返回值的状态, 来…

Qt 把.exe打包成安装文件形式

目录 1.下载工具 Qt Installer Framework2.将bin文件添加到环境变量3.拷贝startmenu示例-备用4.准备Qt Release打包好的程序5.把Release打包好的程序放到packages\org.qtproject.ifw.example\data文件夹下6.生成安装包7.修改安装包图标8.修改主程序程序安装引导-创建快捷键9.添…

Linux---自定义协议

应用层协议 一、协议定制---以网络计算器为例 网络计算机功能---进行-*/^&|的运算并返回结果 请求和响应的结构体如下 // Protocol.hpp #pragma once #include <iostream> #include <memory> class Request { public:Request(){}Request(int data_x, int da…

苹果AI终于来了!从2.7到30亿四款大模型代码全开源,AI技术持续“狂飙”|钛媒体AGI

&#xff08;图片来源&#xff1a;Apple官网&#xff09; 苹果公司突然公布了一则大新闻。 北京时间4月25日凌晨&#xff0c;苹果在 Hugging Face 平台上发布一个“具有开源训练和推理框架的高效语言模型”&#xff0c;名为 OpenELM。 据了解&#xff0c;OpenELM有四种尺寸&…

Magnet for Mac:高效窗口管理工具

Magnet for Mac是一款专为Mac用户设计的窗口管理工具&#xff0c;旨在帮助用户更高效地管理和布局多个应用程序窗口&#xff0c;提升工作效率。 Magnet for Mac v2.14.0中文免激活版下载 这款软件拥有直观易用的界面和丰富的功能&#xff0c;支持用户将屏幕分割成多个区域&…

Linux操作系统的安装与配置

目录 (1)实验目的&#xff1a; (2)实验内容&#xff1a; (3)实验原理&#xff1a; (4)实验步骤&#xff1a; 1.先下载vmware workstation pro软件&#xff0c;下载地址:https://www.vmware.com/products/workstation-pr o/workstation-pro-evaluation.html 2.下载完成后&…

A41 STM32_HAL库函数 之 Rtc通用驱动 所有函数的介绍及使用

A41 STM32_HAL库函数 之 Rtc通用驱动 所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_RTC_Init1.2 HAL_RTC_DeInit1.3 HAL_RTC_MspInit1.4 HAL_RTC_MspDeInit1.5 HAL_RTC_SetTime1.6 HAL_RTC_GetTime1.7 HAL_RTC_SetDate1.8 HAL_RTC_GetDate1.9 HAL_RTC_SetAlarm1.10 HAL_RTC_S…

NumPy 1.26 中文官方指南(四)

附加文件 术语表 原文&#xff1a;numpy.org/doc/1.26/glossary.html (n,) 括号中跟着逗号的数字表示一个具有一个元素的元组。尾随逗号将一个元素元组与括号n区分开。 -1 在维度入口中&#xff0c;指示 NumPy 选择长度&#xff0c;以保持数组元素总数不变。 >>> n…

vue+element 树形结构 改成懒加载模式(原理element有),这里只做个人理解笔记

1 找到属性标签添加 lazy 和 :load"loadNode" 这两个属性 2 引入树形接口,并和后端约定好传值,(拿我的举例 第一次获取全部父级默认第一次传参数:{ parentId : 0},可获取全部父级 第二次通过点击的子级把子级id传进去,这一步就用到了:load"loadNode&quo…