Wildcard Matching
2016-09-17 13:09
267 查看
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:
线性时间复杂度
‘?’ 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
线性时间复杂度
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
相关文章推荐
- JAVA正则表达式 Pattern和Matcher
- 订阅发布者模式
- awk学习笔记七-Pattern
- Java正则表达式实用教程
- 设计模式系列:(2)Factory Method Patterns
- 设计模式系列:(3)Abstract Factory Patterns
- 设计模式系列:(4)Prototype Patterns
- 命令模式--设计模式(一)
- 装饰模式-设计模式(三)
- java正则表达式对字符串的操作
- .NET设计模式(1):1.1 单例模式(Singleton Pattern)
- iOS Design Patterns Excerpt
- 设计模式-----Simple Factory(简单工厂模式)
- java正则表达式语法详解及其使用代码实例
- 单例模式
- Druid 导致图标字体文件不能加载的问题
- UML类图关系
- pattern matcher的简单用法举例
- design_pattern_strategy
- design_pattern_decorator