Python中找到两个字符串的最大合并的程序

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连接(从索引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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程