最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 中最長公共子序列的長度

 更新時間:2023年06月20日 11:13:28   作者:跡憶客  
子序列是在不改變剩余字符的順序的情況下,在刪除一些字符或不刪除任何字符后從給定序列獲得的序列,這篇文章主要介紹了Python 中的最長公共子序列,需要的朋友可以參考下

子序列是在不改變剩余字符的順序的情況下,在刪除一些字符或不刪除任何字符后從給定序列獲得的序列。 最長公共子序列是指所有給定序列共有的最長子序列。

本篇文章講介紹在 Python 中查找兩個序列之間最長公共子序列的長度。

使用 Naive 方法在 Python 中查找最長公共子序列

假設(shè)我們有兩個序列:S1 和 S2,其中:

S1 = QEREW
S2 = QWRE

這里,常見的子序列是 QE、QW、QR、QRE 和 RE。 其中最長的公共子序列是QRE,長度為3。

現(xiàn)在,讓我們看看打印最長公共子序列長度的 Python 解決方案。

代碼:

def LCS(S1, S2, x, y):
    if x == 0 or y == 0:
        return 0
    if S1[x - 1] == S2[y - 1]:
        return LCS(S1, S2, x - 1, y - 1) + 1
    return max(LCS(S1, S2, x, y - 1), LCS(S1, S2, x- 1, y))
S1 = "QEREW"
S2 = "QWRE"
x = len(S1)
y = len(S2)
print ("Length of LCS is", LCS(S1, S2, x, y))

輸出:

Length of LCS is 3

這種方法是用遞歸方法解決 Python 中的 LCS 問題。 它檢查給定序列的所有可能子序列并找到最長的公共子序列。

使用動態(tài)規(guī)劃在 Python 中查找最長公共子序列

動態(tài)規(guī)劃是普通遞歸方法的優(yōu)化。 正如我們所看到的,遞歸方法中存在重疊的子問題,具有許多重復的函數(shù)調(diào)用。

動態(tài)方法將每個函數(shù)調(diào)用的結(jié)果保存在一個數(shù)組中,以便在需要時使用。 結(jié)果,它減少了函數(shù)調(diào)用的次數(shù)。

代碼:

def LCS(S1, S2, m, n):
    R = [[None]*(n+1) for i in range(m+1)]
    for i in range(m+1):
        for j in range(n+1):
            if i == 0 or j == 0:
                R[i][j] = 0
            elif S1[i-1] == S2[j-1]:
                R[i][j] = R[i-1][j-1] + 1
            else:
                R[i][j] = max(R[i-1][j], R[i][j-1])
    return R[m][n]
S1 = "QEREW"
S2 = "QWRE"
m = len(S1)
n = len(S2)
print("Length of LCS is",LCS(S1, S2, m, n))

輸出:

Length of LCS is 3

這種方法更快、更有效,因為它具有 O(mn) 的時間復雜度。

到此這篇關(guān)于Python 中的最長公共子序列的文章就介紹到這了,更多相關(guān)Python最長公共子序列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 爬蟲入門必學:Requests 庫核心用法全解

    Python 爬蟲入門必學:Requests 庫核心用法全解

    requests是python中一個常用于發(fā)送HTTP請求的第三方庫,它極大地簡化了web服務(wù)交互的過程,本文給大家介紹python數(shù)據(jù)分析之爬蟲基礎(chǔ)requests詳解,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • python查看模塊,對象的函數(shù)方法

    python查看模塊,對象的函數(shù)方法

    今天小編就為大家分享一篇python查看模塊,對象的函數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python入門教程(十九)python的函數(shù)詳解

    Python入門教程(十九)python的函數(shù)詳解

    這篇文章主要介紹了Python入門教程(十九)python的函數(shù),函數(shù)是組織好的,可重復使用的,用來實現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段,需要的朋友可以參考下
    2023-04-04
  • 詳解python 發(fā)送郵件實例代碼

    詳解python 發(fā)送郵件實例代碼

    本篇文章主要介紹了python 發(fā)送郵件實例代碼,詳細的介紹了各種方式發(fā)送郵件,包括文件形式的郵件、HTML形式的郵件、帶圖片的HTML郵件等,有興趣的可以了解一下。
    2016-12-12
  • Python利用PyAutoGUI輕松搞定圖片上傳

    Python利用PyAutoGUI輕松搞定圖片上傳

    PyAutoGUI作為一個GUI操作的神器,我們看到了它的操作都很簡單,非常通俗易懂,基本上看到函數(shù)就能知道它的功效。本文將用它實現(xiàn)圖片上傳功能,感興趣的可以了解一下
    2022-09-09
  • 如何解決flask修改靜態(tài)資源后緩存文件不能及時更改問題

    如何解決flask修改靜態(tài)資源后緩存文件不能及時更改問題

    在本篇內(nèi)容里小編給大家整理的是關(guān)于如何解決flask修改靜態(tài)資源后緩存文件不能及時更改問題,需要的朋友們可以學習下。
    2020-08-08
  • pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q)

    pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q)

    這篇文章主要介紹了pycharm快捷鍵自動提示documentation問題(auto?Ctrl+Q),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • NumPy random.choice()函數(shù)的使用小結(jié)

    NumPy random.choice()函數(shù)的使用小結(jié)

    隨機采樣 是一個非常常見的操作,NumPy提供的numpy.random.choice() 函數(shù)讓我們可以方便地從數(shù)組或序列中隨機選取元素,本文將帶深入介紹 numpy.random.choice() 的功能及常見實戰(zhàn)案例,感興趣的可以了解一下
    2026-01-01
  • Python 中的 global 標識對變量作用域的影響

    Python 中的 global 標識對變量作用域的影響

    global 標識用于在函數(shù)內(nèi)部,修改全局變量的值。這篇文章主要介紹了Python 的 global 標識對變量作用域的影響,需要的朋友可以參考下
    2019-08-08
  • 如何在Python 游戲中模擬引力

    如何在Python 游戲中模擬引力

    這篇文章主要介紹了在你的 Python 游戲中模擬引力的操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03

最新評論

敖汉旗| 项城市| 广南县| 安国市| 西乌珠穆沁旗| 温泉县| 启东市| 增城市| 宁都县| 巩义市| 宜章县| 黎平县| 浮山县| 德州市| 玛多县| 盐边县| 山阴县| 双峰县| 怀集县| 大渡口区| 蓬莱市| 香港 | 怀安县| 蚌埠市| 尖扎县| 广丰县| 濮阳县| 弥渡县| 武清区| 固安县| 安义县| 长岭县| 科技| 财经| 岳池县| 呼图壁县| 松溪县| 津南区| 八宿县| 韶山市| 双鸭山市|