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

news/2024/9/24 12:25:01/

题目:

题解

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.ppmy.cn/news/1438267.html

相关文章

安装系统出现dracut-initqueue状态

如图显示&#xff0c;系统安装时未找到/dev/root位置 输入blkid&#xff0c;查看centos系统所在的盘 重启&#xff0c;按e进入 将linuxefi /images/pxeboot/vmlinuz inst.stage2hd:LABELCentOS\x207\x20x86_64 quiet 改成inst.stage2hd:/dev/sdb4 quiet (改成blkid中的盘符名称…

Oracle進階SQLDay03

一、函數進階復習 1、行轉列 select 用水儿量&#xff08;噸&#xff09; 统计项, sum(case when t_account.month01 then USENUM end) 一月, sum(case when t_account.month02 then USENUM end) 二月, sum(case when t_account.month03 then USENUM end) 三月, sum(case when …

Spring 事务 @Transactional 注解

上期我们讲解了Spring事务的两种实现&#xff0c;其中声明式注解使用了 Transactional 注解&#xff0c; 接下来我们学习 该注解的使用细节。 我们主要学习 Transactional注解当中的三个常见属性&#xff1a; rollbackFor&#xff1a;异常回滚属性&#xff0c;指定能够出发事…

宝塔面板使用docker+nginx+gunicorn部署Django项目实战教程

第一步&#xff1a;创建Django项目 使用pip install django安装创建django项目的依赖在电脑某个根目录下执行django-admin startproject app创建一个名为app的Django项目。目录结构如下: ├── app │ ├── init.py │ ├── asgi.py │ ├── settings.py │ ├── url…

redis中的双写一致性问题

双写一致性问题 1.先删除缓存或者先修改数据库都可能出现脏数据。 2.删除两次缓存&#xff0c;可以在一定程度上降低脏数据的出现。 3.延时是因为数据库一般采用主从分离&#xff0c;读写分离。延迟一会是让主节点把数据同步到从节点。 1.读写锁保证数据的强一致性 因为一般放…

Django模型的继承

Django模型的继承 Django模型的继承&#xff0c;包括模型的抽象基类、Meta继承、related_name和related_query_name属性、多表继承、Meta和多表继承、继承与反向关系、代理模型、代理模型继承和未托管模型&#xff0c;以及多重继承等内容。本文讲解一下抽象基类继承&#xff0…

springcloud Ribbon的详解

1、Ribbon是什么 Ribbon是Netflix发布的开源项目&#xff0c;Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的框架。 2、Ribbon能干什么 LB负载均衡(Load Balance)是什么&#xff1f;简单的说就是将用户的请求平摊的分配到多个服务上&#xff0c;从而达…

web server apache tomcat11-10-Class Loader

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…