如下所示:
# coding:utf-8
'''求兩個字串的最長公共子串
思想:建立乙個二維陣列,儲存連續位相同與否的狀態
'''
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 # 最長匹配長度
程式設計客棧p = 0 # 匹配的起始位
f程式設計客棧or 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:
# 獲取最www.cppcns.com大匹配長度
maxnum = record[i+1][j+1]
# 記錄最大匹配長度的終止位置
p = i + 1
return str1[p-maxnum:p], maxnu程式設計客棧m
if __name__ == '__main__':
str1 = raw_input()
str2 = raw_input()
res = getnumofcommonsubstr(str1, str2)
print res
輸出結果:字串str1中的第乙個最長公共子串(若有重複)
本文標題: python實現求兩個字串的最長公共子串方法
本文位址:
求兩個字串的距離
給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。x1和x2可以相同 牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。x1和x2是自己求的,未知 輸入 aaa ...
連線兩個字串
include include void main char lianjie char a 30 char b 30 原型 extern char strcat char dest,char src 用法 include 功能 把src所指字串新增到dest結尾處 覆蓋dest結尾處的 0 並新增 ...
交換兩個字串
交換兩個字串,原來的字串分別為 學生 和 好 字串輸出顯示為 學生好 交換後輸出顯示為 好學生 include using namespace std int main char c1 5 學生 char c2 3 好 char m,n,t m c1 n c2 cout 交換前 m n n t co...