📅  最后修改于: 2020-07-30 05:34:27             🧑  作者: Mango
给定两个字符串A和B,这些字符串包含小写字母。任务是确定合并字符串的长度。例如,给定A为“ abcde”,B为“ cdefg”,然后合并两个字符串将得出“ abcdefg”。以这样的方式执行合并操作,使连接字符既是A的后缀又是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