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

server/2024/10/19 9:38:15/

题目:

题解

class Solution {public boolean isMatch(String s, String p) {int sRight = s.length(), pRight = p.length();while (sRight > 0 && pRight > 0 && p.charAt(pRight - 1) != '*') {if (charMatch(s.charAt(sRight - 1), p.charAt(pRight - 1))) {--sRight;--pRight;} else {return false;}}if (pRight == 0) {return sRight == 0;}int sIndex = 0, pIndex = 0;int sRecord = -1, pRecord = -1;while (sIndex < sRight && pIndex < pRight) {if (p.charAt(pIndex) == '*') {++pIndex;sRecord = sIndex;pRecord = pIndex;} else if (charMatch(s.charAt(sIndex), p.charAt(pIndex))) {++sIndex;++pIndex;} else if (sRecord != -1 && sRecord + 1 < sRight) {++sRecord;sIndex = sRecord;pIndex = pRecord;} else {return false;}}return allStars(p, pIndex, pRight);}public boolean allStars(String str, int left, int right) {for (int i = left; i < right; ++i) {if (str.charAt(i) != '*') {return false;}}return true;}public boolean charMatch(char u, char v) {return u == v || v == '?';}
}

http://www.ppmy.cn/server/15930.html

相关文章

Clickhouse离线安装教程

https://blog.51cto.com/u_15060531/4174350 1. 前置 1.1 检查服务器架构 服务器&#xff1a;Centos7.X 需要确保是否x86_64处理器构架、Linux并且支持SSE 4.2指令集 grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 …

如何配置nginx的转发?

配置Nginx的转发可以通过修改Nginx的配置文件来实现。以下是配置Nginx转发的基本步骤&#xff1a; 打开Nginx的配置文件&#xff0c;通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf。 在http块中添加一个新的server块&#xff0c;用于配置转发目标的基本信…

ABTest如何计算最小样本量-工具篇

如果是比例类指标&#xff0c;有一个可以快速计算最小样本量的工具&#xff1a; https://www.evanmiller.org/ab-testing/sample-size.html 计算样本量有4个要输入的参数&#xff1a;①一类错误概率&#xff0c;②二类错误概率 &#xff08;一般是取固定取值&#xff09;&…

详细分析mysqlslap的基本知识 | 压力测试(附Demo)

目录 前言1. 基本知识2. 参数解读2.1 auto-generate-sql2.2 only-print2.3 iterations2.4 并发处理参数 前言 对数据库进行压力测试&#xff0c;对此补充这方面的详细知识点 1. 基本知识 mysqlslap 是 MySQL 自带的用于模拟数据库负载的压力测试工具 可以模拟多个客户端并发…

docker环境搭建

项目环境搭建 1、安装 Linux 虚拟机 &#xff08;1&#xff09;下载安装&#xff1a; VM VirtualBox 下载安装&#xff1a;Downloads – Oracle VM VirtualBox&#xff0c;要先开启CPU虚拟化 &#xff08;2&#xff09;通过vagrant&#xff0c;在VirtualBox中安装虚拟机 下…

【Vue】Vue中使一个div铺满全屏

在Vue中实现div全屏铺满的方式与纯CSS实现类似&#xff0c;只是在Vue组件中应用CSS的方式略有不同。 最近在项目开发中&#xff0c;就遇到了这个问题&#xff0c;特此记录一下&#xff0c;方便大伙避坑。 有这么一段代码&#xff1a; <template><div class"fu…

Java,Python和Go语言语法差异对比

前段时间一直在找工作&#xff0c;比较颓废&#xff0c;很长时间都没有更新博客了&#xff0c;最近公司的项目需要用到Python语言和Go语言&#xff0c; 所以又重新学习了一下Python语言和Go语言&#xff0c;现在做一些总结&#xff0c;方便以后复习使用&#xff0c;同时也给其他…

Tomcat设计思路

1. 核心功能 HTTP请求处理&#xff1a;设计一个能够接收HTTP请求并进行分发的核心模块。 Servlet生命周期管理&#xff1a;实现Servlet的生命周期管理&#xff0c;包括初始化、销毁等功能。 线程池支持&#xff1a;为每个HTTP请求分配一个独立的线程&#xff0c;以提高并发处…