44. Wildcard Matching

description:

匹配字符串,具体看例子
Given an input string (s) and a pattern (p), implement wildcard pattern matching with support for '?' and '*'.

'?' Matches any single character.
'*' Matches any sequence of characters (including the empty sequence).

The matching should cover the entire input string (not partial).
Note:

s could be empty and contains only lowercase letters a-z.
p could be empty and contains only lowercase letters a-z, and characters like ? or *.

Example:

Example 1:Input:
s = "aa"
p = "a"
Output: false
Explanation: "a" does not match the entire string "aa".Example 2:Input:
s = "aa"
p = "*"
Output: true
Explanation: '*' matches any sequence.Example 3:Input:
s = "cb"
p = "?a"
Output: false
Explanation: '?' matches 'c', but the second letter is 'a', which does not match 'b'.Example 4:Input:
s = "adceb"
p = "*a*b"
Output: true
Explanation: The first '*' matches the empty sequence, while the second '*' matches the substring "dce".Example 5:Input:
s = "acdcb"
p = "a*c?b"
Output: false

answer:

class Solution {
public:bool isMatch(string s, string p) {int i = 0, j = 0, iStar = -1, jStar = -1;while (i < s.size()) {if (s[i] == p[j] || p[j] == '?') {++i; ++j;} else if (p[j] == '*') {iStar = i;jStar = j++; // 这里是先标记位置,然后在挪动 j index} else if (iStar >= 0) {i = ++iStar; //这里一定是++iStar,而不是 iStar+1,因为不但要挪,还要改变 iStarj = jStar + 1;} else return false;}while (j < p.size() && p[j] == '*') ++j;return j == p.size();}
};

relative point get√:

hint :

两个都从头开始走,一样就继续,不一样就三种可能,一种是‘?’,继续;一种是'*',标记完位置之后上边字符串不变,下边走一步(先假设'*'是空,然后往后走,走到不行了再用这个开挂神器);最后一种就是真的不一样,这个时候就想起来看之前有没有'*',有的话,就用'*'去匹配上边的,一直匹配到上边出现某个字符和下边‘*’右边那个字符一样,然后继续开始之前正常的运作。最后上边的字符都匹配完了,如果下面字符还剩下了,还不是‘*’,那也是失败。

转载于:https://www.cnblogs.com/forPrometheus-jun/p/11193209.html

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

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

相关文章

Android makefile

示例 /** Android.mk文件必须从这一行定义开始&#xff0c;my-dir宏是build系统自带的函数&#xff0c;返回当前目录 */ LOCAL_PATH : $(call my-dir) /** CLEAR_VARS是build系统自带的变量&#xff0c;指示makefile脚本清除所有LOCAL_XXX变量&#xff0c;除了LOCAL_P…

viewer.js实现预览效果

我是歌谣 放弃很容易 但是坚持一定很酷 微信公众号关注小歌谣 日常分享前后端知识 前言 最近涉及一个移动端项目 需要把其中的图片变成可预览的图片 听学弟说 可以利用viewer进行实现 首先 我们需要做的就是先写一个简单demo 先实现其中的效果 实现效果 代码 <!doct…

android 论坛_如何看待百度android吧萎靡现象与吧主的无所作为

百度android吧当初被誉为贴吧中的机锋论坛&#xff0c;现如今缺惨不忍睹&#xff0c;这一切究竟是百度资本家的阴谋还是吧主个人无所作为&#xff1f;然而就此事本人与android吧吧主展开讨论以及对其能力的质疑…这本来只是对android吧吧主随意加精普通的质问…然而该吧主却说我…

计算机控制系统脉冲传递函数,第6.2课 (理解)计算机控制系统理论基础—脉冲传递函数.pdf...

第六章计算机控制系统理论基础计算机控制系统理论基础本章结构• 6.1 概述• 6.2 采样与采样定理• 6.3 信号的恢复与保持• 6.4 Z变换和Z反变换• 6.5 脉冲传递函数6.4 Z变换和Z反变换1 Z变换的由来• 在 《自动控制原理》中&#xff0c;线性连续系统的动态特性可以由微分方…

logisim优先编码器怎么用_变频电机为什么要用编码器?又该如何选型?

在自动化控制中经常会碰到各种电机的控制&#xff0c;在输送带、升降机、提升小车等较大功率的电机大部分是用变频电机&#xff0c;各个品牌PLC变频器驱动控制变频电机也很普及了。但是&#xff0c;用户经常会有这样那样的问题出现&#xff1a;变频电机为什么要装编码器?不装编…

修复计算机语言设置是哪个键,Windows语言设置后修复计算机的方法

当我们给我们的windows语音设置后&#xff0c;电脑可能会出现点问题&#xff0c;这个时候我们需要修复一下计算机&#xff0c;其中要进入BIOS的操作可能会难倒一部分新手用户&#xff0c;那么该如何操作呢&#xff1f;接下来我给大家整理了该如何一步步设置&#xff0c;一起来了…

sql 内置函数

sql server自带的函数比较多&#xff0c;下面我把自己经常用到的总结一下: 1、getdate() 得到当前系统时间 2、datediff(差距单位&#xff0c;前时间&#xff0c;后时间)比较时间得到时间差 例&#xff1a;select datediff(day,2011-03-14,getdate()) 结果为1 注意&#xff1a;…

笔记本电脑摄像头不能用_聊一款想代替笔记本电脑的产品

每次苹果发布iPad&#xff0c;部分自媒体KOL的言论总让我有一种自己必须转行的错觉&#xff0c;因为在他们眼中&#xff0c;笔记本电脑即将被iPad代替了&#xff0c;甚至还有人称iPad为“笔记本杀手”。谢谢&#xff0c;有被笑到。但一想到诺基亚当年就是这么傲慢地对待iPhone&…

EXCEL数据汇总-数据透视图

转载于:https://www.cnblogs.com/RogerLu/p/11194629.html

乘法最快的算法计算机,人类史上最快乘法算法诞生

人类用四千年碰到乘法运算天花板&#xff1a;史上最快乘法算法诞生中科院物理所 2019-04-16 12:21:55图片&#xff1a;MENGXIN LI/QUANTA MAGAZINE四千年前&#xff0c;古巴比伦人最先发明了乘法。而历史上&#xff0c;数学家也在不断简化乘法的步骤&#xff0c;直到上个月&…

android menu菜单 实现点击后不消失_教你修改Windows万年不变的黄色文件夹,让文件也不枯燥...

Windows系统发展至今&#xff0c;文件夹的颜色和样式始终是没有太多的变化&#xff0c;一直是一成不变的shi黄色&#xff01;尽管我们可以通过右键>属性>自定义>来修改文件夹的图标&#xff0c;但这种方法不仅需要我们自己去找图标文件&#xff0c;如果文件夹多了&…

电源功耗压力测试软件,开关电源负载测试经验分享——这篇三分钟小文章着实令人“心动”...

开关电源&#xff0c;又称交换式电源、开关变换器&#xff0c;是一种高频化电能转换装置&#xff0c;是电源供应器的一种。开关电源利用的切换晶体管多半是在全开模式及全闭模式之间切换&#xff0c;这两个模式都有低耗散的特点&#xff0c;切换之间的转换会有较高的耗散&#…

http抓包工具推荐WSockExpert/httpwatch/HttpAnalyzer/DebugBar

平常有事没事可以把玩下这几个抓包软件&#xff0c;蛮有意思&#xff01; 抓包分析源地址和目标url一般有下面几个软件&#xff1a;第一个是国产的WSockExpert。以前大家上网漏洞的时候很多时候都用到他。易上网&#xff0c;功能一般。但自身dll文件容易被认为木马删除。适用于…

ref是什么意思_终于有人说出A股不敢说的话:为什么股价不断下跌,大单却持续流入,你知道是什么缘由吗?...

(本文由公众号越声策略(yslc188)整理&#xff0c;仅供参考&#xff0c;不构成操作建议。如自行操作&#xff0c;注意仓位控制和风险自负。)炒股想成功牢记以下几点&#xff1a;第一、选股方法。字面意思很简单&#xff0c;但是也是个集大成的东西。你靠着均线能选股&#xff0c…

解决:Module not found: node_modules\sass-loader\package.json (directory description file)

npm uninstall node-sass npm install node-sasslatest转载于:https://www.cnblogs.com/furenjian/p/11198914.html

xp计算机关闭139端口,小编搞定xp系统电脑关闭139端口的图文方法

我们在使用xp系统的过程中,经常需要对xp系统电脑关闭139端口进行设置&#xff0c;可能很多用户都不知道怎么对xp系统电脑关闭139端口进行设置&#xff0c;但当我们遇到对xp系统电脑关闭139端口的设置方法非常简单&#xff0c;只需要点击“开始”&#xff0c;选择“运行”&#…

c++中计算2得n次方_《一元二次方程》单元试卷,从中总结出5个考点,初三学生应知道...

俗话说&#xff1a;“工欲善其事&#xff0c; 必先利其器。 ” 学好一元二次方程必须熟练掌握它的重要考点&#xff0c;再通过有针对性地做练习&#xff0c;提高解题能力。为了帮助大家切身感受一元二次方程这章的重要考点&#xff0c;下面将为大家详细解析一份单元模拟试卷&am…

C和C++编程中static关键字的含义-修饰函数和变量

static用来修饰一个函数的时候&#xff0c;表示的意思如下&#xff1a; 1、表示该方法只在本c文件中有效。在其他c文件中无法访问这个方法。 2、static的方法的定义一般不放在.h文件中&#xff0c;因为这个方法只在一个c文件中有效。一般直接将该方法定义在c文件的开头部分就可…

[html] 为什么移动端页面的设计稿一般是750px/640px呢?

[html] 为什么移动端页面的设计稿一般是750px/640px呢&#xff1f; 750px 代表iphone6或inphone6s 设备的像素(宽) 640px 代表inpone3Gs&#xff0c;inpone4/4s iphone5系列 设备的像素(宽) 其他手机大多数时这两种规格 750px/640px 代表的逻辑像素是 375px/320px&#xff0c;…

[转]NGINX-检测客户端是通过电脑还是移动设备访问的,将请求重定向到适配的WEB站点...

原文地址&#xff1a;https://blog.51cto.com/10978134/2163757 检测客户端是通过电脑还是移动设备访问的&#xff0c;将请求重定向到适配的WEB站点 此配置方法由Detect Mobile Browsers网站提供&#xff0c;是美国的一个免费开源的针对开发者检测移动端的解决方案&#xff0c;…