最大公共子串問題

最大公共子串問題

這個是動態規劃的基礎題目。動態規劃就是遞推和重複子結構。

確定了遞推關係後。找到一個能極大地減少重複運算的子結構至關重要。選的好了,時間效率會很好。

這個問題,不妨設第一個串爲a,長度爲n,第二個串爲b,長度m。那麼最長的子序列長度爲f(n,m)

當a[n]=a[m]時

f(n,m)=1+f(n-1,m-1)

否則f(n,m)=max(f(n-1),f(m-1))

同時建立一個存儲計算過的f(x,y)的矩陣,如果計算過了就直接使用

程序如下所示

 

【博客整理】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章