Wildcard Matching
来源:互联网 发布:上海知柚公司官网图片 编辑:程序博客网 时间:2024/05/21 22:50
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).
The function prototype should be:
bool isMatch(const char *s, const char *p)
Some examples:
isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa") → falseisMatch("aa", "*") → trueisMatch("aa", "a*") → trueisMatch("ab", "?*") → trueisMatch("aab", "c*a*b") → false
线性时间复杂度
class Solution(object): def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool """ lens = len(s) lenp = len(p) indexs = 0 indexp = 0 match = 0 startIdx = -1 while indexs < lens: if indexp < lenp and ((p[indexp] == '?') or (s[indexs] == p[indexp])): indexs += 1 indexp += 1 elif indexp < lenp and p[indexp] == '*': startIdx = indexp match = indexs indexp += 1 elif startIdx != -1: indexp = startIdx + 1 match += 1 indexs = match else: return False while indexp < lenp and p[indexp] == '*': indexp += 1 return indexp == lenp
0 0
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- Wildcard Matching
- 《ROS精品入门》学习笔记二:ROS基础
- (十一)c52学习之旅-动态数码管
- 《你可以不平凡》-- 周杰伦在北京大学百年讲堂的演讲
- CTF训练营-牛刀小试-ASCII码而已
- Shiro 学习笔记(7)—— Shiro 集成 Web
- Wildcard Matching
- 局域网如何检测电脑是否遭受ARP攻击
- 【Android】详解7.0带来的新工具类:DiffUtil
- 安卓实现在线更新
- Java----socket网络编程
- IOI2014 假期(Holiday)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 第3周项目2-建设“顺序表”算法库
- 二叉树的遍历