LeetCode/Top Interview 150

205. Isomorphic Strings

hyunkookim 2024. 11. 30. 17:41

205. Isomorphic Strings

 

https://youtu.be/7yF-U1hLEqQ?si=6-1KxuCQXX5lnviA

 

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        # 두 문자열의 길이가 다르거나, 둘 중 하나라도 비어있으면 False 반환
        if len(s) != len(t) or len(s) == 0 or len(t) == 0:
            return False

        # s -> t 매핑과 t -> s 매핑을 추적하기 위한 딕셔너리 생성
        mapST, mapTS = {}, {}

        # 문자열 s와 t를 동시에 순회
        for i in range(len(s)):
            c1, c2 = s[i], t[i]  # 현재 인덱스에서 s와 t의 문자 가져오기

            # s의 현재 문자(c1)가 t의 문자(c2)로 매핑되어 있는지 확인
            if (c1 in mapST and mapST[c1] != c2):
                return False  # 매핑이 일치하지 않으면 False

            # t의 현재 문자(c2)가 s의 문자(c1)로 매핑되어 있는지 확인
            if (c2 in mapTS and mapTS[c2] != c1):
                return False  # 매핑이 일치하지 않으면 False

            # 현재 문자를 서로 매핑
            mapST[c1] = c2
            mapTS[c2] = c1

        # 모든 문자가 조건을 만족하면 True 반환
        return True

 

'LeetCode > Top Interview 150' 카테고리의 다른 글

Hashmap: 1. Two Sum ★  (1) 2024.12.01
290. Word Pattern  (0) 2024.11.30
383. Ransom Note  (0) 2024.11.30
48. Rotate Image  (0) 2024.11.30
54. Spiral Matrix  (0) 2024.11.30