leetcode10_Regular Expression Matching
来源:互联网 发布:淘宝冻结资金在哪里看 编辑:程序博客网 时间:2024/06/09 16:28
10. Regular Expression Matching
题目描述:
‘.’ Matches any single character.
‘*’ Matches zero or more of the preceding element.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”, “a*”) ? true
isMatch(“aa”, “.*”) ? true
isMatch(“ab”, “.*”) ? true
isMatch(“aab”, “c*a*b”) ? true
我的代码没成功,思路错了,这个是全匹配。我以为需要p中有s,题目要求p要全匹配s。
简单的python:
import reclass Solution: # @param {string} s # @param {string} p # @return {boolean} def isMatch(self, s, p): #一开始理解了半天,后来发现要全匹配,例子最后一个里面的c*相当于没有 return re.match('^' + p + '$', s) != None
复杂点的 leetcode第10题——***Regular Expression Matching:
class Solution(object): def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool """ sLen = len(s) pLen = len(p) if (pLen == 0): return sLen == 0 if (pLen == 1): if (p == s) or ((p == '.') and (len(s) == 1)): return True else: return False #p的最后一个字符不是'*'也不是'.'且不出现在s里,p跟s肯定不匹配 if (p[-1] != '*') and (p[-1] != '.') and (p[-1] not in s): return False if (p[1] != '*'): if (len(s) > 0) and ((p[0]==s[0]) or (p[0]=='.')): return self.isMatch(s[1:],p[1:]) return False else: while (len(s) > 0) and ((p[0]==s[0]) or (p[0]=='.')): if (self.isMatch(s,p[2:])): return True s = s[1:] return self.isMatch(s,p[2:])
阅读全文
0 0
- leetcode10_Regular Expression Matching
- ★leetcode10_Regular Expression Matching[附动态规划]
- LeetCode: Regular Expression Matching
- LeetCode: Regular Expression Matching
- leetcode Regular Expression Matching
- [Leetcode] Regular Expression Matching
- Regular Expression Matching
- Regular Expression Matching
- [LeetCode]Regular Expression Matching
- Regular Expression Matching
- LeetCode-Regular Expression Matching
- Regular Expression Matching
- Regular Expression Matching LeetCode
- Regular Expression Matching
- LeetCode | Regular Expression Matching
- LeetCode: Regular Expression Matching
- Leetcode: Regular Expression Matching
- [LeetCode] Regular Expression matching
- Numpy.random中shuffle与permutation的区别
- 【网络编程】IO 多路复用之 select 总结
- getSupportFragmentManager()方法不可用解决办法
- tornado使用put方法的body内容限制
- Python乘法,变量在乘号前与后的结果差异
- leetcode10_Regular Expression Matching
- Springmvc国际化和文件上传(八)
- CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge.
- 串口处理浮点型数据
- Xcode-注释工具
- 人见人爱A+B
- hi3520d无线视网络频传输开发总结
- Django显示admin上传的图片
- 剑指offer题解C++【13】调整数组顺序使奇数位于偶数前面