最近用Java做一个regex等价判断的东东,发现垃圾回收真的很强大,资源重用轻轻易易就实现了。C++加上右值引用和move构造函数能够提高资源重用,但是可以预见要一些idiom才能用好,又带入了新的复杂性。
.
..
...
忍不住show一下,谁能够实现一个算法,在4秒内给出能够区分这两个正则表达式的字符串:
(a|b)*b(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)
(a|b)*a(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)(a|b)
要知道识别倒数第n个字符是a的正则表达式,其DFA至少有2^n个状态(见龙书第二版英文版P164)。
posted on 2009-07-13 01:03
lingol 阅读(538)
评论(2) 编辑 收藏 引用