自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 根据正则表达式创建NFA的Thompson算法 python实现

创建NFA的第一步是解析正则表达式,我看龙书中使用分析树来解析的,在这里卡了一段时间,后来查资料发现Thompson的原论文用的解析法是将正则式从前缀形式转换成后缀形式,对我来讲同样清晰易懂而且好实现,实现的复杂度时间复杂度是O(n)。举例来说,原正则表达式为a.b,a|b,(a|b).c,(a|b)*那么转换后分别为ab., ab|, ab|c和ab|*(符号“.”表示联合,“|”表示或,“*”表示任意)。State(状态)又怎么表示的呢?2.若读取的是操作符,弹出栈中内容,创建操作符NFA,再压入栈。.

2022-08-16 19:56:22 1825 2

原创 KMP算法(失效函数)介绍

代码中 p[j] == p[k] 是这样的情况:这时 k = next[j] ,就是 j 和 k 都已被赋了值的,到 j 这里需要重置了即P[j] 不等于T[i],另外p[0 - (k-1)] == p[(j-k) -(j - 1)] ,"ab"是 P 的前缀字符串"abcab"的“最长的既是真前缀又是后缀的子串"也就是说假如完成了k++,j++的设置,P 的前缀字符串从"abcab"变成"abcabd",而"abcabd"子串的寻找和"abc"子串寻找的结果相同,所以代码是 k = next[k]。...

2022-08-05 20:18:29 1996

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除