我使用以下函数来查找两个字符串之间的所有公共子字符串:
def substringFinder(string1, string2):
answer = ""
anslist=[]
len1, len2 = len(string1), len(string2)
for i in range(len1):
match = ""
for j in range(len2):
if (i + j < len1 and string1[i + j] == string2[j]):
match += string2[j]
j=j+1
else:
#if (len(match) > len(answer)):
answer = match
if answer != '':
anslist.append(answer)
match = ""
if match != '':
anslist.append(match)
break
print(anslist)
所以当我这样做时substringFinder("ALISSA", "ALYSSA")
是给出['AL', 'SSA']
这很好。但当我这样做时substringFinder("AHAMMAD", "AHAMAD")
,它只给出输出['AHAM']
但我想要['AHAM', 'MAD']
作为输出。如何得到它?
你可以试试这个:
def substrings(s1, s2):
final = [s1[i:b+1] for i in range(len(s1)) for b in range(len(s1))]
return [i for i in final if i in s1 and i in s2 and len(i) > 1]
s1, s2 = "ALISSA", "ALYSSA"
print(substrings(s1, s2))
Output:
['AL', 'SS', 'SSA', 'SA']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)