두 개의 문자열이 본질적으로 동형인지 확인해야 하는 경우 두 개의 문자열을 매개변수로 사용하는 메서드가 정의됩니다. 문자열의 길이를 반복하고 'ord' 메서드를 사용하여 문자를 정수로 변환합니다.
예시
아래는 동일한 데모입니다.
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"))
출력
The first string is : aababa The second string is : xxyyxx Is the first string isomorphic ? True Is the second string isomorphic ? False
설명
-
'check_isomorphic'이라는 메서드가 정의되어 있습니다.
-
이 메서드는 두 개의 문자열을 매개변수로 사용합니다.
-
문자열의 길이를 결정합니다.
-
문자열의 길이가 같지 않도록 해야 합니다.
-
하나는 'False' 값을 포함하고 다른 하나는 '-1' 값을 포함하는 두 개의 목록이 생성됩니다.
-
두 번째 문자열 길이가 반복되고 첫 번째 문자열의 문자가 정수로 변환됩니다.
-
목록에서 'False' 값으로 해당 값이 변경됩니다.
-
함수 외부에 두 개의 문자열이 정의되어 콘솔에 표시됩니다.
-
메소드는 이러한 문자열을 매개변수로 전달하여 호출됩니다.
-
출력은 콘솔에 표시됩니다.