正则表达式匹配的新算法
数据结构与算法
2007-05-23 v1
摘要
本文重访经典的正则表达式匹配问题,即给定正则表达式 R 和字符串 Q,决定 Q 是否匹配 R 指定的一个字符串。设 m 和 n 分别为 R 和 Q 的长度。在标准单位成本 RAM 上(字长 w ≥ log n),我们展示该问题可在 O(m) 空间内解决,运行时间如下:\begin{equation*} \begin{cases} O(n\frac{m \log w}{w} + m \log w) & \text{if } \\ O(n\log m + m\log m) & \text{if } \\ O(\min(n+ m^2, n\log m + m\log m)) & \text{if .} \end{cases} \end{equation*} 这些时间界限均优于已知的最佳算法。当 w ≥ log^2 n 时,无论使用多少空间,都可改进所有已知的时间界限。
引用
@article{arxiv.cs/0606116,
title = {New Algorithms for Regular Expression Matching},
author = {Philip Bille},
journal= {arXiv preprint arXiv:cs/0606116},
year = {2007}
}