最近用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 閱讀(577)
評論(2) 編輯 收藏 引用