Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem có hoán vị nào lớn hơn về mặt từ vựng hay không giữa hai chuỗi trong Python

Giả sử chúng ta có hai chuỗi s và t có cùng kích thước, chúng ta phải kiểm tra xem có hoán vị nào của s, ví dụ s1, và hoán vị của t, giả sử t1, sao cho:s1 [i] ≤ t1 [i] với tất cả 0 ≤ i

Vì vậy, nếu đầu vào là s =​​"vyx" t ="wzx", thì đầu ra sẽ là True, vì chúng ta có thể có s1 ="vxy" và t1 ="wxz".

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu s và t trống, thì
    • trả về True
  • s:=sắp xếp chuỗi s
  • t:=sắp xếp chuỗi t
  • Xác định một hàm dùng (). Điều này sẽ mất s1, s2
  • đối với tôi trong phạm vi từ 0 đến kích thước là s1, hãy thực hiện
    • nếu s1 [i]> t1 [i], thì
      • trả về Sai
  • trả về True
  • Từ phương thức chính, hãy làm như sau -
  • nếu use (s, t) là true, thì
    • trả về True
  • hoán đổi s và t
  • trả lại sử dụng (s, t)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

"vyx", "wzx"

Đầu ra

True