假设我们有两个大小相同的字符串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