python實(shí)現(xiàn)求兩個(gè)字符串的最長(zhǎng)公共子串方法
如下所示:
# coding:utf-8 ''' 求兩個(gè)字符串的最長(zhǎng)公共子串 思想:建立一個(gè)二維數(shù)組,保存連續(xù)位相同與否的狀態(tài) ''' def getNumofCommonSubstr(str1, str2): lstr1 = len(str1) lstr2 = len(str2) record = [[0 for i in range(lstr2+1)] for j in range(lstr1+1)] # 多一位 maxNum = 0 # 最長(zhǎng)匹配長(zhǎng)度 p = 0 # 匹配的起始位 for i in range(lstr1): for j in range(lstr2): if str1[i] == str2[j]: # 相同則累加 record[i+1][j+1] = record[i][j] + 1 if record[i+1][j+1] > maxNum: # 獲取最大匹配長(zhǎng)度 maxNum = record[i+1][j+1] # 記錄最大匹配長(zhǎng)度的終止位置 p = i + 1 return str1[p-maxNum:p], maxNum if __name__ == '__main__': str1 = raw_input() str2 = raw_input() res = getNumofCommonSubstr(str1, str2) print res
輸出結(jié)果:字符串str1中的第一個(gè)最長(zhǎng)公共子串(若有重復(fù))
以上這篇python實(shí)現(xiàn)求兩個(gè)字符串的最長(zhǎng)公共子串方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python替換字符串中的子串圖文步驟
- 在Python中實(shí)現(xiàn)替換字符串中的子串的示例
- Python實(shí)現(xiàn)統(tǒng)計(jì)給定字符串中重復(fù)模式最高子串功能示例
- Python實(shí)現(xiàn)針對(duì)給定字符串尋找最長(zhǎng)非重復(fù)子串的方法
- Python簡(jiǎn)單實(shí)現(xiàn)查找一個(gè)字符串中最長(zhǎng)不重復(fù)子串的方法
- Python實(shí)現(xiàn)判斷一個(gè)字符串是否包含子串的方法總結(jié)
- Python字符串中查找子串小技巧
- python七種方法判斷字符串是否包含子串
相關(guān)文章
python?Opencv實(shí)現(xiàn)停車位識(shí)別思路詳解
這篇文章主要介紹了Opencv實(shí)現(xiàn)停車位識(shí)別,本文通過(guò)示例代碼場(chǎng)景分析給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07

淺談Pytorch torch.optim優(yōu)化器個(gè)性化的使用

淺談Python 中整型對(duì)象的存儲(chǔ)問(wèn)題

python機(jī)器學(xué)習(xí)darts時(shí)間序列預(yù)測(cè)和分析

Python?torch.onnx.export用法詳細(xì)介紹