1. 개요
Isomorphic Strings - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
대응되는 문자인지 확인하는 문제이다.
예시로 egg와 add가 주어졌는데 e는 a로 g는 d로 이전에 나왔던 문자를 반대편 문자로 대치시키면서 푸는 문제로 이해했다.
암호화하는 방법과 유사하다고 생각이 들었다.
2. 풀이
처음엔 하나의 문자로 해시를 만들어 풀었는데 그럴 경우 한 방향에서 전부 다른 문자가 나올 경우 대응되는 문자인지 확인이 불가능했다
따라서 해시 2개를 사용하여 해결함
var isIsomorphic = function (s, t) {
const map = new Map();
const tmap = new Map();
for (let i = 0; i < s.length; i++) {
if (!map.has(s[i]) && !tmap.has(t[i])) {
// 둘다 없다면
map.set(s[i], t[i]);
tmap.set(t[i], s[i]);
} else {
if (map.get(s[i]) !== t[i] || tmap.get(t[i]) !== s[i]) return false;
}
}
return true;
};
'알고리즘' 카테고리의 다른 글
[알고리즘] Leetcode Longest Palindrome (0) | 2022.11.16 |
---|---|
[알고리즘] Leetcode 392. Is Subsequence (0) | 2022.11.11 |
[알고리즘] 튜플 js (0) | 2022.11.04 |
[알고리즘] 위장 js (0) | 2022.11.04 |
[알고리즘] 3진법 뒤집기, 숫자의 표현, (2) | 2022.10.31 |