Python检查字符串重叠部分并进行拼接

2017-08-28 董付国 Python小屋 Python小屋

问题描述:假设有两个字符,要求检查两个字符串的重叠部分并进行拼接。例如abcdefg和fghik拼接得到abcdefghik,1234和23456拼接得到123456,而1234和678无法拼接。

参考代码:

def checkAndMerge(s1, s2):
    m = min(len(s1), len(s2))
    for i in range(m, 0, -1):
        # 比较s1的最后i个字符是否与s2的前i个字符一样
        if s1[-i:]==s2[:i]:
            return s1+s2[i:]


print(checkAndMerge('abcdefg', 'fghik'))
print(checkAndMerge('1234', '23456'))
print(checkAndMerge('abcdefg', 'abcdefghijkl'))
print(checkAndMerge('abcdefg', 'bcdefghijkl'))
print(checkAndMerge('abcdef', 'abcdefghijkl'))


运行结果:

abcdefghik
123456
abcdefghijkl
abcdefghijkl
abcdefghijkl


--------我是分割线--------

1、为庆祝新书《Python程序设计开发宝典》全面上架,清华大学出版社联合“赣江图书专营”淘宝店推出特价优惠活动,《Python程序设计开发宝典》原价69元,新书上架期间超低价39.8元,可以复制下面的链接使用浏览器打开查看图书详情和购买:

https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14464369246.84.46f16db0roWfX4&id=557107249812&rn=339cbc9df2bac424664103917dedfbd2&abbucket=8&tbpm=3

2、CSDN学院课程“Python可以这样学(第一季)”于2017年8月29日9:00-12:00之间一折特价,97课,24小时,原价99元,特价9元,详情:http://edu.csdn.net/course/detail/4118

3、新书上架第一波转发集赞活动中奖名单已提交清华大学出版社,赠书将于近日寄出,请注意查收!集赞数量最多的几位屋友将获得作者亲笔签名赠书,赠书将于明日寄出,请注意查收!详情见《Python程序设计开发宝典》全面上架(新书超低价优惠+转发积攒送书)