Re: [問題] 二維的字串比對問題

看板Prob_Solve (計算數學 Problem Solving)作者 (ㄚ光)時間18年前 (2006/07/07 13:03), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串6/9 (看更多)
※ 引述《windows2k (KERORO軍曹)》之銘言: : 傳統的一維比對, 給定一個字串 text 和一個 pattern : 要看看pattern是否有在 text出現過 : 對於這種問題, 已經有很多解決方案, 如 BM, KMP之類的演算法 : 那如果變成二維的情況該怎麼轉化成一維 : 如 : abc bc : bcd 中要找出 cd 這個pattern : cde : 可以找到 : abc abc : bcd 和 bcd : cde cde : 兩組解 : 該怎麼把二維的問題轉成一維來做? abc ab bc 把 bcd 拆成 bc , cd 就是跟 pattern 一樣的寬度 cde cd de 然後分別從裡面找, 要比對 m-n 個, ab A 然後把 bc 編成 B 之類的, 還是用 Huffman code @_@" cd C bc B pattern cd 就編成 C, 然後就是 ABC 和 BC 做一維的比對嚕~@_@" m, n 分別是 text 和 pattern 的寬度 複雜度 O( (m-n)*( m+n + [編碼(m+n)個字串] )) ^^^ 如果分別是 m 列和 n 列 = O( (m^2-n^2) + [編碼(m+n)個字串]*(m-n) ) = O( (m^2-n^2) + k(m+n)(m-n) ) = O(m^2-n^2) 感覺起來好像非常好 @@" 比接成一串的 KMP O(m^2+n^2) 好 不知道有沒有算錯 Orz... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.205.19 ※ 編輯: yalight 來自: 140.115.205.19 (07/07 13:20) ※ 編輯: yalight 來自: 140.115.205.19 (07/07 13:22) ※ 編輯: yalight 來自: 140.115.205.19 (07/07 13:23)

07/07 13:23, , 1F
pattern間的長度若不一樣,就要對每種pattern長度做一樣的事
07/07 13:23, 1F
※ 編輯: yalight 來自: 140.115.205.19 (07/07 14:27)
文章代碼(AID): #14hUip5O (Prob_Solve)
討論串 (同標題文章)
文章代碼(AID): #14hUip5O (Prob_Solve)