python 查找两个字符串a,b中的最长公共子串

python

地址: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)

以上是 python 查找两个字符串a,b中的最长公共子串 的全部内容, 来源链接: utcz.com/z/389003.html

回到顶部