📜  Python | 用后缀和前缀合并两个字符串

📅  最后修改于: 2020-07-30 05:34:27             🧑  作者: Mango

给定两个字符串AB,这些字符串包含小写字母。任务是确定合并字符串的长度。例如,给定A为“ abcde”B为“ cdefg”,然后合并两个字符串将得出“ abcdefg”。以这样的方式执行合并操作,使连接字符既是A后缀是B的前缀
合并之前,您可以执行以下任一操作:

  1. 反向字符串A
  2. 反向字符串B

例子:

输入 :
A = "ababc"
B = "bcabc" 
输出 :
长度为 8

字符串A(即“ bc")的后缀和B(即“ bc")的前缀相同
因此合并的字符串将为“ ababcabc",长度为8。

输入 :
A = "cdefg"
B = "abhgf"
输出 :
长度为 8

字符串A(即“ fg")的后缀和反向B(即“ fg")的前缀相同
因此合并的字符串将为“ cdefghba",长度为8

输入 :
A = "wxyz"
B = "zyxw"
输出 :
长度为 4

以下是上述方法的Python代码实现: 

# 查找长度的函数合并字符串 
  
def mergedstring(x, y) : 
      
    k = len(y) 
    for i in range(len(x)) : 
          
        if x[i:] == y[:k] : 
            break
        else: 
            k = k-1
  
    # 取消注释以下语句以了解合并的字符串是什么
    # print(a + b[k:]) 
    return len(a + b[k:]) 
  
# 在合并的字符串中查找最小长度的函数 
def merger(a, b): 
    # reverse b  
    b1 = b[::-1]  
  
    # 函数调用以查找字符串的长度而不反转字符串“ B" 
    r1 = mergedstring(a, b) 
  
    # 通过反转字符串'B'来查找字符串长度的函数调用
    r2 = mergedstring(a, b1) 
  
    # 比较长度 
    if r1 > r2 : 
        print("长度为", r2) 
    else : 
        print("长度为", r1) 
              
# 驱动程式码 
a = "abcbc"
b = "bcabc"
  
merger(a, b) 

输出: 

长度为 8