Giả sử chúng ta có hai chuỗi s và t có độ dài n. Chúng ta có thể lấy một ký tự từ s và ký tự khác từ t và hoán đổi chúng. Chúng tôi có thể thực hiện số lần hoán đổi không giới hạn; chúng ta phải kiểm tra xem liệu có khả thi để làm cho hai chuỗi bằng nhau hay không.
Vì vậy, nếu đầu vào là s ="xy", t ="yx", thì đầu ra sẽ là True
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- st:=sắp xếp chuỗi sau khi nối s và t
- đối với tôi trong phạm vi từ 0 đến kích thước là st - 1, tăng thêm 2, thực hiện
- nếu st [i] không giống với st [i + 1], thì
- trả về Sai
- nếu st [i] không giống với st [i + 1], thì
- trả về True
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): st=sorted(s+t) for i in range(0,len(st),2): if st[i]!=st[i+1]: return False return True ob = Solution() print(ob.solve("xy", "yx"))
Đầu vào
"xy", "yx"
Đầu ra
True