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

Python - Kiểm tra xem hai chuỗi có phải là đẳng cấu về bản chất hay không

Khi cần kiểm tra xem hai chuỗi có phải là đẳng cấu về bản chất hay không, một phương thức được định nghĩa nhận hai chuỗi làm tham số. Nó lặp qua độ dài của chuỗi và chuyển đổi một ký tự thành một số nguyên bằng cách sử dụng phương thức ‘ord’.

Ví dụ

Dưới đây là một minh chứng về điều tương tự

MAX_CHARS = 256

def check_isomorphic(str_1, str_2):
   len_1 = len(str_1)
   len_2 = len(str_2)

   if len_1 != len_2:
      return False

   marked = [False] * MAX_CHARS
   map = [-1] * MAX_CHARS

   for i in range(len_2):

      if map[ord(str_1[i])] == -1:

         if marked[ord(str_2[i])] == True:
            return False

         marked[ord(str_2[i])] = True

         map[ord(str_1[i])] = str_2[i]

      elif map[ord(str_1[i])] != str_2[i]:
         return False
   return True
str_1 = 'aababa'
str_2 = 'xxyyxx'
print("The first string is :")
print(str_1)
print("The second string is :")
print(str_2)
print("Is the first string isomorphic ?")
print(check_isomorphic("aab","xxy"))
print("Is the second string isomorphic ?")
print(check_isomorphic("aab","xyz"))

Đầu ra

The first string is :
aababa
The second string is :
xxyyxx
Is the first string isomorphic ?
True
Is the second string isomorphic ?
False

Giải thích

  • Phương thức có tên ‘check_isomorphic’ được xác định.

  • Phương thức này nhận hai chuỗi làm tham số.

  • Nó xác định độ dài của các chuỗi.

  • Cần phải đảm bảo rằng các chuỗi không có cùng độ dài.

  • Hai danh sách được tạo trong đó một danh sách chứa giá trị ‘Sai’ và danh sách khác chứa giá trị ‘-1’.

  • Độ dài chuỗi thứ hai được lặp lại và các ký tự của chuỗi đầu tiên được chuyển đổi thành số nguyên.

  • Giá trị tương ứng trong danh sách có giá trị "Sai" được thay đổi.

  • Bên ngoài hàm, hai chuỗi được xác định và được hiển thị trên bảng điều khiển.

  • Phương thức được gọi bằng cách chuyển các chuỗi này dưới dạng tham số.

  • Đầu ra được hiển thị trên bảng điều khiển.