题解 | #正则表达式匹配#

正则表达式匹配

http://www.nowcoder.com/practice/28970c15befb4ff3a264189087b99ad4

比较两个字符串是否匹配,由于有".","*"等特殊字符可通过递归或动态规划的方式求解,
递归:

  1. 当模式串 p[0] == s[0] or p[0] == "."时,s及p指针向前移动,
  2. 当p[0] == s[0] and p[1] == "*"时,
    2.1 s可移动一位,p匹配且不移动(匹配1...n位),直到 s[0] != p[0]
    2.2 s不移动,p匹配 0 位
    代码(参考大佬写法)
    def match(self , s , p ):
         # write code here
         if not p:
             return not s
         f = bool(s) and p[0] in [s[0], "."]
         if len(p) > 1 and p[1] == "*":
             return self.match(s, p[2:]) or (f and self.match(s[1:], p))
         else:
             return f and self.match(s[1:], p[1:])
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务