检查程序是否在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