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 |