mplement 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).The function prototype should be:
bool isMatch(const char *s, const char *p)Some examples:
isMatch("aa","a") → false
isMatch("aa","aa") → true
isMatch("aaa","aa") → false
isMatch("aa", "*") → true
isMatch("aa", "a*") → true
isMatch("ab", "?*") → true
isMatch("aab", "c*a*b") → false

本题是匹配问题,如果遇到‘?’就匹配任意一个字符,如果是‘*’,匹配0-n个字符。利用贪心算法求解。时间:20ms。代码如下:
class Solution {
public:bool isMatch(string s, string p) {if (p.empty()) return s.empty();string::const_iterator pter = p.begin(), ster = s.begin();string::const_iterator star_p, star_s;bool sign = false;while (ster!=s.end()){if (pter == p.end()){if (sign){ster = ++star_s;pter = star_p;}elsebreak;}else if (*pter == '?' || *pter == *ster)++pter, ++ster;else if (*pter == '*'){while (pter != p.end() && (*pter == '*' || *pter == '?')){if (*pter == '?'){++pter;++ster;if (ster == s.end())break;}else++pter;}if (pter==p.end()) return true;star_p = pter;star_s = ster;sign = true;}else if ((*pter != *ster || *pter!='?') && sign){ster = ++star_s;pter = star_p; }elsereturn false;}if (ster != s.end())return false;while (pter!=p.end())if (*pter++ != '*')return false;return true;}
};

转载于:https://www.cnblogs.com/Scorpio989/p/4584571.html

[LeetCode] #44 Wildcard Matching相关推荐

  1. 【To Understand! 重点 递归 动态规划 正则表达式匹配】LeetCode 44. Wildcard Matching

    LeetCode 44. Wildcard Matching Solution1:我的答案 递归,时间复杂度是O(2n)O(2n)O(2^n)因为超时未能AC 只是记录一下,以警示后人-- class ...

  2. LeetCode: 44. Wildcard Matching

    LeetCode: 44. Wildcard Matching 题目描述 Implement wildcard pattern matching with support for '?' and '* ...

  3. LeetCode - 44. Wildcard Matching

    44. Wildcard Matching Problem's Link --------------------------------------------------------------- ...

  4. [leetcode 44] Wildcard Matching

    Implement wildcard pattern matching with support for '?' and '*'. '? ' Matches any single character. ...

  5. LeetCode 10. Regular Expression Matching / 44. Wildcard Matching

    10. Regular Expression Matching 经典DP题目,比较复杂,需要多复习. dp[i][j] 表示 s 下标0~i,p 下标0~j 是否能够匹配   dp[i-1][j-1] ...

  6. 【LeetCode】44. Wildcard Matching (2 solutions)

    Wildcard Matching Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any ...

  7. 44. Wildcard Matching 通配符匹配

    Title 给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 '?' 和 '*' 的通配符匹配. '?' 可以匹配任何单个字符. '*' 可以匹配任意字符串(包括空字符串). 两个字符串完全 ...

  8. [OJ] Wildcard Matching (Hard)

    LintCode 192. Wildcard Matching (Hard) LeetCode 44. Wildcard Matching (Hard) 第二次刷还是被这题虐. 其实就是跪在一个地方, ...

  9. [LeetCode] Wildcard Matching 题解

    6. Wildcard Matching 题目 Implement wildcard pattern matching with support for '?' and '*'. '?' Matche ...

最新文章

  1. 机器学习中的梯度下降( Gradient Descent)算法
  2. apache优化管理
  3. 《失业的程序员》(六):加班
  4. Spring基于Java的JSR-250注解
  5. mysql sql 连接查询语句_Mysql——sql数据库中的连接查询
  6. Python工程师求职必知的经典面试题分享
  7. android 生成纯色,android – 以编程方式添加具有纯色和笔触的渐变
  8. IIS环境下ShopEx伪静态配置【图文教程+视频教程】
  9. 32f4 usb 升级程序_不断中招的你还放心升级win10吗?wi10近期更新问题及解决办法...
  10. java 设置月份_java – 为什么Calendar.JUNE将月份设置为7月?
  11. 「Python」conda与pip升级所有的包
  12. Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
  13. mysql重启服务命令_重启mysql命令
  14. 搭建VUE应用的时候,fsevents报错问题
  15. WT6255 WIFI/BT调试文档
  16. Python--第一天
  17. flash常见问题集锦,很适合新手哦
  18. WebApp网页真机调试工具-(Android)
  19. 【VMD-SSA-LSSVM】基于变分模态分解与麻雀优化Lssvm的负荷预测【多变量】(Matlab代码实现)
  20. 【Codeforces 777 D Cloud of Hashtags】

热门文章

  1. 做训练营需要具备什么样必备条件?
  2. 创业者总认为自己能力很强,但能力之上是认知力
  3. windows部署tomcat服务自动启动,同时解决服务无法启动的问题
  4. Mysql Server8.0下载安装配置环境教程
  5. Mybatis_day3_Mybatis的多表查询
  6. SQL Server商业智能–在已建立的数据仓库中扩展事实表
  7. sql过滤代码段_如何创建和管理T-SQL代码段
  8. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡...
  9. Linux实战教学笔记50:Zabbix监控平台3.2.4(二)深入理解zabbix
  10. E 定向 牛客练习赛25