题解 | #查找两个字符串a,b中的最长公共子串#
查找两个字符串a,b中的最长公共子串
https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506
# !/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = 'tianyi' __date__ = '2024/3/19 19:57 ' __file__ = 'HW_HJ65.py' # 两个字符串的最长公共子串 String1,String2 = input().rstrip(),input().rstrip() List1,List2 = [],[] for i in range(len(String1)+1): for j in range(i+2,len(String1)+1): try: List1.append(String1[i:j]) except: passssssss for i in range(len(String2)+1): for j in range(i+2,len(String2)+1): try: List2.append(String2[i:j]) except: pass List = list(set(List1) & set(List2)) List.sort(key=lambda x:len(x),reverse=True) List_final = [List[0]] for i in range(1,len(List)): if len(List[i]) == len(List[0]): List_final.append(List[i]) else: break if len(List_final) == 1: print(List_final[0]) else: List_min = [] if len(String1)>len(String2): List_min = List2 else: List_min = List1 for i in List_min: if i in List_final: print(i) break
try expect 是一个保证在不知道会不会报错的地方顺利通过的好工具