【Day1 中高难度算法挑战】正则表达式匹配解析
介绍
总而言之是时候利用暑假锻炼一下算法技术,一提算法面试就面露难色的情形总不能一直持续下去。本栏目面向有一定基础的编程爱好者,每天(如果up不鸽)分享并解析一道LeetCode中高难度题目(通常是hard)。有兴趣的小伙伴可以一起跟着做并且讨论解法。目前的教材是花花酱的Leetcode Problem List【1】.
适合人群:
有一定算法基础,但是还未能顺利通过笔试/面试,总觉得算法题目想不明白的你。
不适合人群:
算法入门级选手(一上来就做难题可能并不合适,建议首先专注简单/中等题目)
非常不适合人群:
算法竞赛选手(这种小儿科的问题完全是在浪费您的时间)

正则表达式匹配
题目看这里,leetcode第十题,hard难度:
https://leetcode.com/problems/regular-expression-matching/
强烈建议读者自己先做(不过真的会有读者吗,笑),有任何问题欢迎在评论区讨论,up看到了会及时回复。
解析
本题类似于经典题目《编辑距离》,据传言leetcode前几百道题的hard题目实际上应该归类为中等难度。不过本题的难点在于动态规划矩阵初始化,以及怎样处理*。基本思想是,如果字符串a和b的一部分末端匹配,那么就把这两部分消去,看看剩下的部分匹配不匹配。为了有效率的查看剩下的部分是否匹配,用了动态规划的方法存储之前计算过的结果。

教材链接
【1】https://zxi.mytechroad.com/blog/leetcode-problem-categories/