LeetCode #205

Isomorphic Strings

1개의 풀이 · Python

문제 원문 보기 ↗

SOLUTION INFO

Python · main.py

main.py
class Solution(object):
    def isIsomorphic(self, s, t):
        # 풀이
        D = defaultdict(str)
        D2 = defaultdict(str)

        for a, b in zip(s, t):
            if D[a] != '' and D[a] != b:
                return False
            D[a] = b

        for a, b in zip(t, s):
            if D2[a] != '' and D2[a] != b:
                return False
            D2[a] = b
        return True

SOLUTION DESCRIPTION

풀이 설명

앞에서부터 한글자씩 보면서 문자 일대일 매칭이 유지되는지 확인 s에서 t로 바꾸는 과정과 t에서 s로 바꾸는 과정 두 가지를 봐야함. 예를 들어, Example 2에서 s = "f11", t = "b23"를 보면 f는 b로 바뀌고 두 번째 글자 1은 2로 바뀐다. 하지만, 세 번째 문자는 1에서 3으로 바뀌어야 하는데 이미 2로 바뀌었기 때문에 False 근데, 만약 s = "b23", t = "f11"로 들어온다면? s에서 t로 바꾸는거보면서 확인하면 문제 없다고 판단하여 True라고 생각할 수 있다. 따라서, 일대일 매칭이 되려면 s에서 t로 바꿀 때와 t에서 s로 바꿀 때 둘다 봐야한다.

GITHUB COMMUNITY

커뮤니티 평가

GitHub 계정으로 남긴 최신 평가 1건만 반영하며, 데이터는 매일 저장소에 동기화됩니다.

최근 동기화

체감 난이도

아직 평가 없음

첫 난이도 평가를 남겨주세요.

문제 추천

아직 평가 없음

이 문제가 도움이 되었는지 알려주세요.

이 문제 평가하기

GitHub 로그인 후 난이도를 제출하고, 원하는 경우 추천 여부도 함께 남길 수 있습니다.

추천 여부 (선택)

평가하려면 GitHub로 로그인해 주세요.

평가는 자동으로 저장소 Discussion에 기록되므로 Discussion 화면을 직접 열 필요가 없습니다. 같은 문제를 다시 평가하면 기존 평가가 갱신됩니다.

DISCUSSION

댓글

GitHub 로그인 후 작성할 수 있으며 모든 댓글은 이 저장소의 Discussions에 보관됩니다.