在Python中获取给定字符串的最大长度合并程序

在Python中获取给定字符串的最大长度合并程序

假设有两个字符串s和t。我们必须按照以下方式创建一个名为merge的字符串:只要s或t中有一个不为空,就选择以下其中一种选项―

  • 如果s不为空,则将s中的第一个字符附加到merge,并将其从s中删除。

  • 如果t不为空,则将t中的第一个字符附加到merge,并将其从t中删除。

因此,我们必须找到我们可以制作的字典上最大的合并项。

因此,如果输入类似于s = “zxyxx”t =“yzxxx”,则输出将是zyzxyxxxxx,因为

  • 从s中选择:merge =“z”,s =“xyxx”,t =“yzxxx”

  • 从t中选择:merge =“zy”,s =“xyxx”,t =“zxxx”

  • 从t中选择:merge =“zyz”,s =“xyxx”,t =“xxx”

  • 从s中选择:merge =“zyzx”,s =“yxx”,t =“xxx”

  • 从s中选择:merge =“zyzxy”,s =“xx”,t =“xxx”

然后在结束合并时将来自s和t的剩余5个x添加到末尾。

要解决此问题,我们将按照以下步骤进行操作―

  • ans:=空字符串

  • idx1:= 0,idx2:= 0

  • while idx1 < size of s and idx2 < size of t, do

    • 如果s [idx1] > t [idx2]或(s [idx1]与t [idx2]相同,并且从索引idx1到末尾的s的子字符串> =从索引idx2到结束的t的子字符串),则
      • ans: = ans连接s [idx1]

      • idx1:= idx1 +1

    • 否则,当s [idx1]<t [idx2]或(s [idx1]与t [idx2]相同,并且从索引idx1到末尾的s的子字符串< =从索引idx2到t的结束的子字符串),则

      • ans: = ans连接t [idx2]

      • idx2:= idx2 +1

  • 返回ans连接s [from index idx1 to end]连接t [from index idx2 to end]

示例

让我们看以下实现以获得更好的理解-

def solve(s, t):
   ans = ""
   idx1 = idx2 = 0
   while(idx1<len(s) and idx2<len(t)):
      if s[idx1] > t[idx2] or (s[idx1]==t[idx2] and s[idx1:]>=t[idx2:]):
         ans+=s[idx1]
         idx1+=1
      elif s[idx1] < t[idx2] or (s[idx1]==t[idx2] and s[idx1:]<=t[idx2:]):
         ans+=t[idx2]
         idx2+=1

   return ans+s[idx1:]+t[idx2:]

s = "zxyxx"
t = "yzxxx"
print(solve(s, t))

输入

[7,4,5,3,8], [[0,2,2],[4,2,4],[2,13,100]]

输出

zyzxyxxxxx

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程