205. Isomorphic Strings

양성준·2025년 5월 6일

코딩테스트

목록 보기
43/102

문제

https://leetcode.com/problems/isomorphic-strings/description/

풀이

class Solution {
    public boolean isIsomorphic(String s, String t) {
        Map<Character, Integer> map1 = new HashMap<>();
        Map<Character, Integer> map2 = new HashMap<>();

        for(int i = 0; i < s.length(); i++) {
            char c1 = s.charAt(i);
            char c2 = t.charAt(i);
            if(!map1.containsKey(c1)) {
                map1.put(c1, i);
            }

            if(!map2.containsKey(c2)) {
                map2.put(c2, i);
            }

            if(map1.get(c1) != map2.get(c2)) return false;
        }

        return true;
    }
}
  • map에 없다면 각 인덱스를 추가
    • 만약 c1와 c2가 등장한 인덱스가 다르다면 Isomorphic x
    • aaaa 처럼 동일 문자열이 이어지고 있다면, 'a'에 대해 항상 처음 시작 위치가 같아야함
    • aaaa / aaab 처럼 갑자기 b가 등장하면, map2에 put이 되고, s의 a의 첫 위치와 t의 b의 첫 위치를 비교하게 되므로 false
profile
백엔드 개발자

0개의 댓글