def longsubstring(s1, s2):"""查詢兩個字串中相同的最大字串
使用了滑動視窗的思想
"""maxlength = 0 # 記錄當前字串最大長度
maxstring = '' # 記錄當前最大字串
new1 = '' # 第乙個字串的拼接子串
for v1 in s1:
new1 += v1
new2 = '' # 第二個字串的拼接子串
for v2 in s2:
new2 += v2
while len(new2) > len(new1):
# 當第二個字串的長度大於第乙個字串時,則從第二個子串的第乙個字元開始刪除,直到兩個子串長度相等
new2 = new2[1:]
if new2 == new1 and len(new2) > maxlength:
# 當兩個子串的內容相等且長度大於當前最大長度時就記錄當前字串並更新最大長度
maxlength = len(new2)
maxstring = new2
if maxstring != new1:
# 內層迴圈完成後比較外層的子串與最大子串內容是否相同,不同時從外層子串的第乙個字元開始刪除
new1 = new1[1:]
return maxstring, maxlength
if __name__ == '__main__':
print(longsubstring("abccade", "dgcadde"))
查詢兩個字串中相同字元
for 歷遍第乙個字串的字元,過程中用 in 檢測字元是否存在於第二個字串中。若是在則將其新增在列表中。一 函式檔案 def intersect seq1,seq2 定義交集函式,函式名及變數 res 定義空列表用來盛放相同字元 for x in seq1 歷遍字串1 if x in seq2 歷遍...
兩個字串中最大相同的子串
3,兩個字串中最大相同的子串。qwerabcdtyuiop xcabcdvbn 思路 1,既然取得是最大子串,先看短的那個字串是否在長的那個字串中。如果存在,短的那個字串就是最大子串。2,如果不是呢,那麼就將短的那個子串進行長度遞減的方式去子串,去長串中判斷是否存在。如果存在就已找到,就不用在找了。...
兩個字串中最大相同的子串
1 2 兩個字串中最大相同的子串。3 4 5 6 思路 7 1,既然取得是最大子串,先看短的那個字串是否在長的那個字串中。8 如果存在,短的那個字串就是最大子串。9 2,如果不是呢,那麼就將短的那個子串進行長度遞減的方式去子串,去長串中判斷是否存在。10 如果存在就已找到,就不用在找了。11 121...