python 查找两个字符串a,b中的最长公共子串
地址:https://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506?tpId=37&&tqId=21288&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking
1 ''' 2 描述 3 查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。 4 注:子串的定义:将一个字符串删去前缀和后缀(也可以不删)形成的字符串。请和“子序列”的概念分开! 5 6 本题含有多组输入数据! 7 输入描述: 8 输入两个字符串 9 10 输出描述: 11 返回重复出现的字符 12 示例1 13 输入: 14 abcdefghijklmnop 15 abcsafjklmnopqrstuvw 16 输出: 17 jklmnop 18 19 ''' 20 21 while(True): 22 try:str1 = input() 23 except:break 24 25 str2 = input() 26 newStr = '' 27 resStr='' 28 resStrShort = str1 if len(str1) <= len(str2) else str2 29 for i in range(len(str1)): 30 newStr = str1[i:] 31 for j in range(len(newStr)): 32 newStr1 = newStr[:len(newStr)-j] 33 if newStr1 in str2: 34 35 if len(resStr) > len(newStr1) or (len(resStr) == len(newStr1) and resStrShort.index(resStr) < resStrShort.index(newStr1)): 36 resStr = resStr 37 else: 38 resStr = newStr1 39 print(resStr)