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"))