从短串开始索引,遇到相同字符的继续索引,直到遇到不同字符时进行判断,若长度大于此前的最大长度,则更新最大长度和公共子串,关键是把索引的下标重新返回到第一个相同的字符,继续找后续是否有相同的更长的子串。

def str_length(str1,str2):
    strlength = 0
    lstr1 = len(str1)
    lstr2 = len(str2)

    for i in range(lstr1):
        k = i
        flag = 0
        for j in range(lstr2):
            if(k < len(str1)):
                if(str1[k] == str2[j]):
                    k += 1
                    flag = 1
                elif(flag == 1 and str1[k] != str2[j]):
                    if(k-i > strlength):
                            strlength = k - i
                            r1 = ''
                            for l in range(i,k):
                                r1 += str1[l]
                    k = i
                    flag = 0
            elif(k == lstr1):
                if(flag == 1):
                    if(k-i > strlength):
                        strlength = k - i
                        r1 = ''
                        for l in range(i,k):
                            r1 += str1[l]
                    break
            else:
                break
    return r1

while True:
    try:
        str1 = str(input())
        str2 = str(input())

        if(len(str1) <= len(str2)):
            res_str = str_length(str1,str2)
        else:
            res_str = str_length(str2,str1)

        print(res_str)
    except:
        break