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.