博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从头做leetcode之leetcode 44 通配符匹配
阅读量:2435 次
发布时间:2019-05-10

本文共 1102 字,大约阅读时间需要 3 分钟。

44.通配符匹配

给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。

‘?’ 可以匹配任何单个字符。

‘*’ 可以匹配任意字符串(包括空字符串)。
两个字符串完全匹配才算匹配成功。

说明:

s 可能为空,且只包含从 a-z 的小写字母。

p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。

  • 和第10题 正则表达式匹配很像,区别是这里的‘ * ’更加强大,可以代替任何字符串,还是用动态规划的办法
class Solution {
public: bool isMatch(string s, string p) {
if(s.size() == 0 && p.size() == 0) return true; else if(p.size() == 0) return false; if(p == "*") return true; s=" "+s; p=" "+p; int m=s.size(),n=p.size(); vector
> dp(m+1,vector
(n+1,false)); dp[0][0]=true; for(int j=0 ;j < n;j++){
if(p[j] == '*') dp[0][j+1]==true; } for(int i=1;i <= m;i++){
for(int j = 1;j <= n;j++){
if(p[j-1] == '*'){
dp[i][j] = dp[i][j-1] || dp[i-1][j]; } else if(s[i-1] == p[j-1] || p[j-1] == '?'){
dp[i][j]=dp[i-1][j-1]; } else dp[i][j]=false; } } return dp[m][n]; }};

通过时间:

在这里插入图片描述

转载地址:http://ksemb.baihongyu.com/

你可能感兴趣的文章
Windows系统维护完全图形化攻略(转)
查看>>
WAP2.0移动互联(转)
查看>>
WAP手机防毒攻略(转)
查看>>
如何建立C++ BuilderX 1.5 Mobile Edition开发环境(转)
查看>>
蓝牙套接字概述(转)
查看>>
TCPDUMP简介(转)
查看>>
Symbian智能手机特殊号码搜集(转)
查看>>
Linux操作系统下媒体播放器的初步探讨(转)
查看>>
网站内页权重如何提高-SEO优化技术群课堂笔记(转)
查看>>
用MSDOS.SYS同装两个WIN98(转)
查看>>
用DHTML来模拟实现下拉菜单(转)
查看>>
oracle数据库应用中实现汉字“同音”查询(转)
查看>>
关于无盘网络正确网络配置建议,减少卡机蓝屏关键(转)
查看>>
交换机及路由器如何才能更加安全?(转)
查看>>
chinaunix
查看>>
bxp读写分离怎么设置(转)
查看>>
复制表结构的通用存储过程(转)
查看>>
Symbian OS SDKs简介(转)
查看>>
[组图]基于Nokia S60的游戏开发之四(转)
查看>>
屡次选错终致项目暴毙(转)
查看>>