View

반응형

 

알고리즘 분류: 해시맵

문제 링크: https://leetcode.com/problems/isomorphic-strings/description/

 

 

 

【 문제 】

 

  • 두 문자열 s와 t가 주어졌을 때, 두 문자열의 형태가 같은 지 판단하는 문제이다.

 

 

 

【 풀이】

 

  1. s의 각 문자 위치에 해당되는 t의 문자를 map에 저장한다.
  2. 이미 저장된 문자가 다른 문자와 매핑되어 있다면 false를 반환한다.
  3. t의 문자가 이미 다른 문자에 매핑되어 있다면 false를 반환한다.
  • 시간 복잡도: O(n)
  • 공간 복잡도: O(n)

 

 

 

【 코드】

 

public class LeetCode_205 {
    public boolean isIsomorphic(String s, String t) {
        Map<Character, Character> map = new HashMap<>();

        for (int i = 0; i < s.length(); i++) {
            char a = s.charAt(i);
            char b = t.charAt(i);
            if (map.containsKey(a)) {
                if (map.get(a) != b) {
                    return false;
                }
            } else {
                if (map.containsValue(b)) {
                    return false;
                }
                map.put(a, b);
            }
        }

        return true;
    }
}

 

 

 

728x90
반응형

'Problem Solving > LeetCode' 카테고리의 다른 글

[LeetCode] 125. Valid Palindrome [Java]  (0) 2024.04.02
[LeetCode] 392. Is Subsequenc [Java]  (0) 2024.04.01
Share Link
reply
250x250
반응형
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31