Python中找到两个字符串的最大合并的程序
假设有两个字符串s和t。我们想按以下方式形成称为merge的字符串:当s或t任一个非空时,选择以下选项之一 –
- 如果s不为空,则将s中的第一个字符附加到merge并将其从s中删除。
-
如果t不为空,则将t中的第一个字符附加到merge并将其从t中删除。
最后,我们必须找到可以形成的字典顺序最大的合并。
因此,如果输入为s =“ zxyxx” t =“ yzxxx”,则输出将为“ zyzxyxxxxx”
要解决这个问题,我们将按照以下步骤进行 –
- a:= 0,b:= 0
-
merge:=空字符串
-
W1:= s的大小
-
W2:= t的大小
-
当a < W1和b < W2时,执行
- 如果从索引a到结束的s子字符串>从索引b到结束的t子字符串,则
- merge:=merge连接s [a]
-
a:= a + 1
-
否则,
- merge:=merge连接t [b]
-
b:= b + 1
- merge:=merge连接t [b]
- 如果从索引a到结束的s子字符串>从索引b到结束的t子字符串,则
-
返回merge连接(从索引a到结束的s子字符串)连接(从索引b到结束的t子字符串)
例子
让我们看下面的实现以更好地理解 –
def solve(s, t):
a = b = 0
merge = ""
W1 = len(s)
W2 = len(t)
while a < W1 and b < W2:
if s [a:]> t [b:]:
merge + = s [a]
a + = 1
else:
merge + = t [b]
b + = 1
return merge + s [a:] + t [b:]
s =“ zxyxx”
t =“ yzxxx”
print(solve(s,t))
输入
"zxyxx",“yzxxx”
产物
zyzxyxxxxx