最近用Java做一個regex等價判斷的東東,發(fā)現(xiàn)垃圾回收真的很強(qiáng)大,資源重用輕輕易易就實現(xiàn)了。C++加上右值引用和move構(gòu)造函數(shù)能夠提高資源重用,但是可以預(yù)見要一些idiom才能用好,又帶入了新的復(fù)雜性。
.
..
...
忍不住show一下,誰能夠?qū)崿F(xiàn)一個算法,在4秒內(nèi)給出能夠區(qū)分這兩個正則表達(dá)式的字符串:
(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)
要知道識別倒數(shù)第n個字符是a的正則表達(dá)式,其DFA至少有2^n個狀態(tài)(見龍書第二版英文版P164)。
posted on 2009-07-13 01:03
lingol 閱讀(577)
評論(2) 編輯 收藏 引用