【发布时间】:2018-11-23 22:42:34
【问题描述】:
我正在解决一个问题,我需要合并两个字符串,以便一个字符串可以在另一个字符串中。合并的字符串应该是最短的长度。
例子:
str1 = "AABAK"
str2 = "HYUAABA"
merged string = "HYUAABAK"
到目前为止,我能够使它适用于以相似子字符串结尾的字符串,但如果它们是相反的,我的解决方案就不起作用。
失败:
str1 = 'ctaagt'
str2 = 'gcta'
expected answer: gctaagt
解决方案:
def overlap(str1, str2):
l = min(len(str1), len(str2))
for i in range(l, -1, -1):
if str1.endswith(str2[-i:]):
print('overlap ' + str2[-i:])
return str2[-i:]
str1 = "AABAK"
str2 = "HYUAABA"
for i in range(len(str1), -1, -1):
res = overlap(str1[0:i], str2)
if(res):
print('merge ' + str2+str1[i:])
break
我也想知道是否有更好或更清洁的方法来解决这个问题。
注意:为了我的测试目的,str1 故意较短。
【问题讨论】:
-
请修正你的缩进