Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chuỗi Bạn (Buddy Strings) trong Python


Giả sử ta có hai chuỗi A và B chỉ chứa chữ cái thường; ta cần kiểm tra xem có thể hoán đổi hai ký tự trong A để kết quả bằng B hay không.

Ví dụ, nếu đầu vào là A = "ba", B = "ab", thì đầu ra sẽ là True.

Để giải quyết, ta thực hiện các bước sau:

  • Nếu độ dài A không bằng độ dài B, thì:
    • Trả về False
  • Ngược lại, nếu A và B có phần tử không chung nhau, thì:
    • Trả về False
  • Ngược lại, nếu A bằng B và tất cả ký tự trong A đều khác nhau, thì:
    • Trả về False
  • Ngược lại:
    • count := 0
  • Với i từ 0 đến độ dài A, thực hiện:
    • Nếu A[i] khác B[i], thì:
      • count := count + 1
      • Nếu count bằng 3, thì:
        • Trả về False
  • Trả về True

Hãy xem triển khai sau để hiểu rõ hơn:

Ví dụ

class Solution:    def buddyStrings(self, A, B):       if len(A) != len(B):           return False       elif sorted(A) != sorted(B):           return False       elif A == B and len(set(A)) == len(A):           return False       else:           count = 0           for i in range(len(A)):             if A[i] != B[i]:                 count += 1                 if count == 3:                   return False           return True ob = Solution() print(ob.buddyStrings("ba","ab"))

Đầu vào

"ba","ab"

Đầu ra

True