当前位置: 首页 > 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比赛省赛真题 …...

海洋边缘计算:Switch与Forwarder底层网络架构实战

摘要&#xff1a;在复杂的海洋工业环境中&#xff0c;边缘通信节点的架构直接影响系统的隔离能力。本文从嵌入式Linux底层出发&#xff0c;剥析通用海事网关的处理逻辑&#xff0c;演示利用代码构建防御管道。 导语&#xff1a;随着船舶工业向IT与OT深度融合演进&#xff0c;为…...

Doris Catalog实战指南:从创建到多源数据联邦查询

1. Doris Catalog核心概念解析 Doris Catalog是Apache Doris实现多源数据联邦查询的核心组件&#xff0c;简单理解它就像是数据世界的"图书馆管理员"。想象一下&#xff0c;你走进一个巨大的图书馆&#xff0c;里面有来自不同出版社&#xff08;数据源&#xff09;的…...

Memtest86+终极指南:如何快速检测内存故障的完整教程

Memtest86终极指南&#xff1a;如何快速检测内存故障的完整教程 【免费下载链接】memtest86plus Official repo for Memtest86 项目地址: https://gitcode.com/gh_mirrors/me/memtest86plus 你的电脑是否经常出现蓝屏、程序崩溃或系统不稳定&#xff1f;这些看似随机的故…...

DDrawCompat完整指南:让经典DirectX游戏在现代Windows上流畅运行

DDrawCompat完整指南&#xff1a;让经典DirectX游戏在现代Windows上流畅运行 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors…...

基于主从博弈的动态定价策略与电动汽车充电管理优化研究在智能小区的实践探索

基于主从博弈的智能小区代理商定价策略及电动汽车充电管理 关键词&#xff1a;电动汽车 主从博弈 动态定价 智能小区 充放电优化 参考文档&#xff1a;《基于主从博弈的智能小区代理商定价策略及电动汽车充电管理》基本复现 仿真平台&#xff1a;MATLABCPLEX/gurobi平台 优势…...

ArcGIS保姆级教程:用‘面积制表’工具5分钟搞定各行政区土地利用类型占比

ArcGIS面积制表工具&#xff1a;5分钟实现土地利用类型精准统计 在城乡规划、生态保护、农业监测等领域&#xff0c;土地利用类型统计分析是最基础却最频繁的需求之一。传统方法往往需要反复操作多个工具&#xff0c;既耗时又容易出错。今天要介绍的ArcGIS**面积制表&#xff0…...

如何快速下载B站视频?BilibiliDown终极免费工具完整指南

如何快速下载B站视频&#xff1f;BilibiliDown终极免费工具完整指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirrors…...

2026年Top5正规工厂布局规划咨询机构盘点

2026制造降本增效&#xff1a;工厂布局规划成核心抓手2026年&#xff0c;制造行业竞争持续加剧&#xff0c;降本增效成为企业生存发展的核心命题。不少企业因工厂布局不合理&#xff0c;导致生产动线混乱、空间利用率低、物流成本居高不下&#xff0c;严重制约运营效率提升。针…...

别再为SD卡格式化头疼了!手把手教你用FAT32格式搞定DGUS屏程序下载

嵌入式工程师必看&#xff1a;DGUS屏SD卡程序下载的终极避坑指南 第一次接触DGUS屏开发时&#xff0c;最让人抓狂的往往不是复杂的UI设计&#xff0c;而是看似简单的SD卡程序下载。明明按照文档操作&#xff0c;屏幕却死活不识别SD卡&#xff1f;这可能是90%新手遇到的第一个拦…...

如何在本地安全提升英雄联盟游戏体验?LeagueAkari工具包全面解析

如何在本地安全提升英雄联盟游戏体验&#xff1f;LeagueAkari工具包全面解析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 在英雄联盟游戏中…...