Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python - 두 문자열이 본질적으로 동형인지 확인

<시간/>

두 개의 문자열이 본질적으로 동형인지 확인해야 하는 경우 두 개의 문자열을 매개변수로 사용하는 메서드가 정의됩니다. 문자열의 길이를 반복하고 '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' 값으로 해당 값이 변경됩니다.

  • 함수 외부에 두 개의 문자열이 정의되어 콘솔에 표시됩니다.

  • 메소드는 이러한 문자열을 매개변수로 전달하여 호출됩니다.

  • 출력은 콘솔에 표시됩니다.