检查程序是否在Python中的两个字符串之间在字典编排上是否存在较大的排列

假设我们有两个大小相同的字符串s和t,我们必须检查s的某些置换(例如s1)和t的置换(例如t1),使得:s1 [i]≤t1 [i]对于所有0≤i <n,0≤i <n或t1 [i]≤s1 [i]。

因此,如果输入像s =“ vyx” t =“ wzx”,则输出将为True,因为我们可以拥有s1 =“ vxy”和t1 =“ wxz”。

为了解决这个问题,我们将遵循以下步骤-

  • 如果s和t为空,则

    • 返回True

  • s:=对字符串s排序

  • t:=排序字符串t

  • 定义一个功能util()。这将花费s1,s2

  • 对于0到s1大小的i,执行

    • 返回False

    • 如果s1 [i]> t1 [i],则

  • 返回True

  • 从主要方法中执行以下操作-

  • 如果util(s,t)为true,则

    • 返回True

  • 交换s和t

  • 返回util(s,t)

让我们看下面的实现以更好地理解-

示例

class Solution:
   def solve(self, s, t):
      if not len(s) or not len(t):
         return True
         s = sorted(s)
         t = sorted(t)
   def util(s1, t1):
      for i in range(len(s1)):
         if s1[i] > t1[i]:
            return False
         return True
         if util(s, t):
            return True
      s, t = t, s
      return util(s, t)
ob = Solution()s = "vyx"
t = "wzx"
print(ob.solve(s, t))

输入值

"vyx", "wzx"

输出结果

True
猜你喜欢