当前位置: 首页 > news >正文

leetcode日记(34)通配符匹配

这道题做了很久很久……一开始我想用的方法是使用双指针,分别指向两数组,然后依次按照题目中的规则遍历,做了很久发现时间超限了!这是我最后超时的代码!

class Solution {
public:bool isMatch(string s, string p) {for(int i=0;i<s.size();i++){cout<<s<<" "<<p<<endl;if(s[i]!=p[i]&&p[i]!='?'&&p[i]!='*') return 0;if(s[i]==p[i]||(p[i]=='?'&&i<s.size())){bool g=isMatch(s.substr(i+1,s.size()),p.substr(i+1,p.size()));return g;}else if(p[i]=='*'){while(p[i+1]=='*'){p.erase(p.begin()+i+1);}for(int j=0;j<=s.size()-i;j++){if(isMatch(s.substr(i+j,s.size()),p.substr(i+1,p.size()))==1) return 1;}}else return 0;}if(s==""&&p!=""){while(p[0]=='*') p.erase(p.begin());if(p=="") return 1;}if(s!=""&&p=="") return 0;if(s==""&&p=="") return 1;return 0;}
};

然后看了一眼解析…发现了很新奇很简单的思路!就是用bool数组记录前n个字符串是否匹配,然后使用动态规划依次填写bool数组。

期间遇到了一个小困难,就是*符号可以对应0个字母,可以每次判断正确都查看后一个字母是否为*,如果是则下一个也为正确

代码如下:

class Solution {
public:bool isMatch(string s, string p){int x=s.size(),y=p.size();bool b[x+1][y+1];for(int i=0;i<=x;i++)for(int j=0;j<=y;j++) b[i][j]=0;b[0][0]=1;int g=1;while(p[g-1]=='*'&&g<=y){b[0][g]=1;cout<<0<<" "<<g<<endl;g++;}for(int j=1;j<=y;j++){for(int i=1;i<=x;i++){if(b[i-1][j-1]!=0){if(s[i-1]==p[j-1]||p[j-1]=='?'){b[i][j]=1;int u=j+1;while(p[u-1]=='*'&&u<=y){b[i][u]=1;u++;}}else if(p[j-1]=='*'){for(int o=i;o<=x;o++){b[o][j]=1;int u=j+1;while(p[u-1]=='*'&&u<=y){b[i][u]=1;u++;}}}}}}cout<<x<<" "<<y;return b[x][y];}
};

相关文章:

leetcode日记(34)通配符匹配

这道题做了很久很久……一开始我想用的方法是使用双指针&#xff0c;分别指向两数组&#xff0c;然后依次按照题目中的规则遍历&#xff0c;做了很久发现时间超限了&#xff01;这是我最后超时的代码&#xff01; class Solution { public:bool isMatch(string s, string p) {…...

一张图读懂人工智能

一、生成人工智能的概念和应用&#xff0c;以及如何使用大型语言模型进行聊天和创造原创内容。这项技术将会对人类和企业产生深远影响。 计算机获得学习、思考和交流的能力&#xff0c;被称为生成人工智能。生成人工智能可以立即获得人类所有知识的总和&#xff0c;并回答任何…...

5.37 BCC工具之uflow.py解读

一,工具简介 uflow工具用于跟踪方法的进入和退出事件,并打印一个可视化的流程图,显示方法是如何进入和退出的,类似于带有断点的跟踪调试器。这对于理解Java、Perl、PHP、Python、Ruby和Tcl等高级语言中的程序流非常有用,这些语言为方法调用提供了USDT探测。 二,代码示例…...

R语言简介,R语言开发环境搭建步骤,R基础语法以及注释详解

R语言是一种用于统计计算与绘图的编程语言&#xff0c;由新西兰奥克兰大学的统计学家罗斯伊哈卡和罗伯特杰特曼于1993年发明。R语言是一种自由、免费、源代码开放的软件&#xff0c;属于GNU系统的一个分支&#xff0c;如今被广泛地应用于统计分析、数据挖掘等领域。 R语言的特…...

【Django】执行查询—检索对象

检索对象 以下述模型为基础&#xff0c;讨论检索对象的方式方法&#xff1a; from datetime import datefrom django.db import modelsclass Blog(models.Model):name models.CharField(max_length100)tagline models.TextField()def __str__(self):return self.nameclass …...

Python:练习:编写一个程序,写入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款

案例&#xff1a; python编写一个程序&#xff0c;写入一个美金数量&#xff0c;然后显示出如何用最少的20美元、10美元、5美元和1美元来付款&#xff1a; Enter a dollar amout:93 $20 bills: 4 $10 bills: 1 $5 bills:0 $1 bills:3 思考&#xff1a; 写入一个美金数量&…...

模板方法模式 详解 设计模式

模板方法模式 模板方法模式是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;将一些步骤延迟到子类中实现。这种模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。 结构 抽象类&#xff08;Abstract Class&#xff09;&#xff1a;负责给出一…...

Node.js_基础知识(http模块)

网络基础 URL的组成结构&#xff1a;协议名: // 主机名 [:端口号] [/路径] [?查询字符串]协议默认端口&#xff1a; http&#xff1a;80&#xff0c;开发常用端口有 3000、8080、8090、9000https: 443 如果端口被其他程序占用&#xff0c;可以使用 资源监视器 找到占用端口的…...

matlab工具包

matlab安装yalmip和cplex出错 - 知乎 (zhihu.com) Cplex的安装和使用实例-CSDN博客 一条龙教程&#xff1a;Matlab下使用yalmip(工具箱)cplex&#xff08;求解器&#xff09;_使用yalmip和cplex求解器进行建模和求解的步骤如下:-CSDN博客 啊啊啊&#xff0c;好开心&#xff…...

UCSF DOCK 分子对接详细案例(01)- rigid, fixed anchor, flexible dock

欢迎浏览我的CSND博客&#xff01; Blockbuater_drug …点击进入 文章目录 前言一、操作环境二、研究背景三、受体-配体结构文件准备3.1准备文件夹DOCK_workdir, 下载晶体结构3.1.1 来自湿实验的受体配体共晶结构&#xff1a;3.1.2 来自深度学习和语言模型推理预测的蛋白结构&a…...

java基础(4)注解,集合,

注解 什么是注解&#xff08;Annotation&#xff09;&#xff1f;注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释” // this is a component: Resource("hello") public class Hello {Injectint n;PostConstructpublic void hello(Param String name…...

基于springboot+vue的大学城水电管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

代码随想录算法训练营第四十六天| 139.单词拆分、卡码网第56题

代码随想录算法训练营第四十六天| 139.单词拆分、卡码网第56题 139.单词拆分卡码网第56题 139.单词拆分 题目链接 文章讲解 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {int bagSize s.size(), n wordDict.size();vector<boo…...

Redis 在 Linux 系统下安装部署的两种方式详细说明

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 Redis安装和配置 1、首先在官网下载好redis-6.0.9.tar.gzhttp://redis.io/ 或者使用 wget 命令下载&#xff1a;wget http://download.redis.io/releases/redis-6.0.9.tar.gz 2、下载使用上传到阿里…...

【茶话数据结构】查找最短路径——Dijkstra算法详解(保姆式详细图解,步步紧逼,保你学会)

&#x1f4af; 博客内容&#xff1a;【茶话数据结构】查找最短路径——Dijkstra算法详解 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f989;所属专栏&#xff1a;数据结构笔记 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实…...

Webserver解决segmentation fault(core dump)段错问问题

前言 在完成了整个项目后&#xff0c;我用make命令编译了server&#xff0c;当我运行./server文件时&#xff0c;出现了段错误 在大量的代码中找出错因并不是一件容易的事&#xff0c;尤其是对新手程序员来说。而寻找bug的过程就像是侦探调查线索追查凶手一样&#xff0c;我们…...

存储过程基本了解

文章目录 介绍存储过程示例1. 目的2. 输入参数3. 输出参数4. 执行逻辑5. 返回值6. 示例用法7. 注意事项 存储过程的关键字有哪些简单实操 介绍 存储过程是一组预编译的SQL语句&#xff0c;以及流程控制语句&#xff0c;封装在数据库服务器中并可以被重复调用。它们可以接收参数…...

『大模型笔记』RAG应用的12种调优策略指南

RAG应用的12种调优策略指南 文章目录 一. 概要二. 数据索引2.1. 数据清洗2.2. 分块2.3. 嵌入模型2.4. 元数据(或未向量化的数据)2.5. 多索引2.6. 索引算法三. 推理阶段(检索和生成)3.1. 检索参数3.2. 高级检索策略3.3. 重新排序模型3.5. 大语言模型(LLM)...

leedcode刷题--day7(字符串)

23 文章讲解 力扣地址 C class Solution { public:void reverseString(vector<char>& s) {int left 0;int right s.size() - 1; // right 应该初始化为 s.size() - 1while (left < right) {swap(s[left], s[right]); // 直接交换 s[left] 和 s[right] 的值lef…...

【蓝桥杯省赛真题31】python连续正整数之和 中小学青少年组蓝桥杯比赛python编程省赛真题解析

目录 python连续正整数之和 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python连续正整数之和 第十二届蓝桥杯青少年组python比赛省赛真题 …...

2分钟解决iPhone网络共享问题:Windows用户的免费终极方案

2分钟解决iPhone网络共享问题&#xff1a;Windows用户的免费终极方案 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_…...

(二)永磁同步电机矢量控制(三电平)——三电平SVPWM调制算法中的扇区与区域判断实战解析

1. 三电平SVPWM的核心挑战&#xff1a;扇区与区域判断 我第一次接触三电平SVPWM算法时&#xff0c;最头疼的就是这个扇区和区域判断。当时在实验室调试电机&#xff0c;明明按照教材上的步骤操作&#xff0c;可电机就是转不起来。后来才发现是区域判断的逻辑写反了。今天就和大…...

告别复制粘贴!用这个开源Agent工具,5分钟搞定一周的会议纪要(支持Word导出和批量打印)

告别复制粘贴&#xff01;用开源Agent工具5分钟搞定一周会议纪要 每次开完会&#xff0c;你是不是也对着满屏的聊天记录发愁&#xff1f;从微信、钉钉、飞书里一条条复制发言&#xff0c;粘贴到Word里调整格式&#xff0c;再挨个打印分发——这套流程至少耗掉半小时。更糟的是…...

PCIe硬件电路设计实战:从金手指到PCB布局的全面解析

1. PCIe硬件电路设计基础入门 第一次接触PCIe硬件设计时&#xff0c;我被那些密密麻麻的金手指和复杂的差分对搞得头晕眼花。后来才发现&#xff0c;只要掌握几个核心概念&#xff0c;PCIe并没有想象中那么可怕。PCIe全称PCI-Express&#xff0c;是目前主板上最常见的高速串行总…...

【图像增强】基于白平衡、CLAHE、暗通道先行去雾水下图像增强附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

异构计算时代的安防底座:基于 Docker 的 X86/ARM 与 GPU/NPU 混合部署架构解析

引言&#xff1a;算力碎片化是 AI 落地的“阿喀琉斯之踵” 在将 AI 算法应用于实际安防场景时&#xff0c;作为架构师&#xff0c;我们往往面临着严峻的“算力割裂”问题。 客户的现场环境极其复杂&#xff1a;数据中心可能部署着高性能的 NVIDIA GPU 服务器用于处理海量视频&a…...

Python全栈入门到实战【进阶篇 11】Python线程池编程:从入门到实战(附批量爬虫/文件处理实战)

前言 在上一节中&#xff0c;我们掌握了多线程基础用法&#xff0c;但手动创建、管理线程时会遇到“频繁创建销毁线程开销大、线程数失控、管理逻辑复杂”等问题——而线程池是解决这些问题的最优方案&#xff0c;它是企业级并发编程中最常用的工具&#xff0c;也是Python进阶…...

D2RML终极指南:如何在暗黑2重制版中轻松实现多账户同时游戏

D2RML终极指南&#xff1a;如何在暗黑2重制版中轻松实现多账户同时游戏 【免费下载链接】D2RML Diablo 2 Resurrected Multilauncher 项目地址: https://gitcode.com/gh_mirrors/d2/D2RML 还在为频繁切换暗黑2重制版账户而烦恼吗&#xff1f;D2RML&#xff08;Diablo 2 …...

WinUtil:3分钟搞定Windows软件安装与系统优化的终极神器

WinUtil&#xff1a;3分钟搞定Windows软件安装与系统优化的终极神器 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 还在为Windows系统臃肿不…...

Qwen3.5-9B惊艳案例:上传架构图→生成部署脚本→输出CLI命令全过程

Qwen3.5-9B惊艳案例&#xff1a;上传架构图→生成部署脚本→输出CLI命令全过程 1. 开篇&#xff1a;90亿参数大模型的惊艳能力 Qwen3.5-9B作为一款90亿参数的开源大语言模型&#xff0c;在技术圈引起了广泛关注。这个模型最让人惊叹的是它强大的多模态理解能力——不仅能处理…...