View
알고리즘 분류: 해시맵
문제 링크: https://leetcode.com/problems/isomorphic-strings/description/
【 문제 】
- 두 문자열 s와 t가 주어졌을 때, 두 문자열의 형태가 같은 지 판단하는 문제이다.
【 풀이】
- s의 각 문자 위치에 해당되는 t의 문자를 map에 저장한다.
- 이미 저장된 문자가 다른 문자와 매핑되어 있다면 false를 반환한다.
- 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 |
reply