用 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
- 如果 s1[i] > t1[i],则
- 返回 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

