输入两个字符串s1和s2,把这两个字符串先后拼接起来成为一个长字符串,要求在拼接时s1尾部与s2头部最长的公共子串重叠部分只保留一份。例如:字符串分别为xwnmksdtg’和’tgkdmwt’时返回’xwnmksdtgkdmwt’。
给个推导式解法
s1 = input()
s2 = input()
#s1 = 'xwnmksdtg'
#s2 = 'tgkdmwt'
s3 = [s1+s2[len(s2[:i]):] for i in range(len(s2),-1,-1) if len(s1)>=len(s2[:i]) and s1[len(s1)-len(s2[:i]):] == s2[:i]][0]
print(s3)
def cat(s1,s2):
for i in range(min(len(s1),len(s2)),-1,-1):
if s1[-i:]==s2[:i]:
break
return s1+s2[i:]
s1,s2 = input().split()
print(cat(s1,s2))
#输入两个字符串s1和s2,把这两个字符串先后拼接起来成为一个长字符串,#xwnmksdtg tgkdmwt
#要求在拼接时s1尾部与s2头部最长的公共子串重叠部分只保留一份。例如:字符串分别为xwnmksdtg’和’tgkdmwt’时返回’xwnmksdtgkdmwt’。
s1,s2 = input().split(' ')
news = s1
for i in range(min(len(s1), len(s2))):
if s1[-i:] == s2[:i]:
news += s2[i:]
break
print(news)