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