用 Python 检查两个字符串之间是否存在字典顺序更大的排列的程序

pythonserver side programmingprogramming

假设我们有两个大小相同的字符串 s 和 t,我们必须检查是否存在 s 的排列(比如 s1)和 t 的排列(比如 t1),使得:s1[i] ≤ t1[i] 对于所有 0 ≤ i < n 或 t1[i] ≤ s1[i] 对于所有 0 ≤ i < n。

因此,如果输入为 s = "vyx" t = "wzx",则输出将为 True,因为我们可以有 s1 = "vxy"并且 t1 = "wxz"。

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

  • 如果 s 和 t 为空,则
    • 返回 True
  • s := 对字符串 s 进行排序
  • t := 对字符串 t 进行排序
  • 定义一个函数 util() 。这将需要 s1、s2
  • 对于范围从 0 到 s1 的大小的 i,执行
    • 如果 s1[i] > t1[i],则
      • 返回 False
  • 返回 True
  • 从 main 方法执行以下操作 −
  • 如果 util(s, t) 为真,则
    • 返回 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

相关文章


有用资源