#automata #dfa #regex #finite

l1-dfa

基于L1的Rust确定性有限状态自动机库

12个版本

0.1.1 2023年3月2日
0.1.0 2023年3月1日
0.0.10 2023年3月1日
0.0.9 2023年2月28日

#2155 in 算法

31次每月下载

MIT许可证

9KB
163

L1 DFA

基于L1的Rust确定性有限状态自动机库。

功能

  • try_parse(regex)
    • 空间复杂度 = $O(2^x)$
    • 时间复杂度 = $O(2^x)$
    • 最坏情况示例: /(01|10)*[01]{x}/
  • x.接受(s)
    • 时间复杂度 = $s$
  • x.is_empty()
    • 时间复杂度 = $x$
  • x.complement()
    • 空间复杂度 = $x$
    • 时间复杂度 = $x$
  • x.intersect(y)
    • 空间复杂度 = $xy$
    • 时间复杂度 = $xy$
  • x.union(y)
    • 空间复杂度 = $xy$
    • 时间复杂度 = $xy$
  • x.minimize()
    • 时间复杂度 = $x\log x\Sigma_x$
  • x.is_subset_of(y)
    • 空间复杂度 = $xy$
    • 时间复杂度 = $xy$
  • x.reverse()
    • 空间复杂度 = $O(2^x)$
    • 时间复杂度 = $O(2^x)$
    • 最坏情况示例: /[01]{x}(01|10)*/

依赖

~1.5MB
~49K SLoC