LeetCode #20 Valid Parentheses
var isValid = function(s) {
let map = new Map();
map.set('(', ')');
map.set('[', ']');
map.set('{', '}');
let stack = [];
for(let i = 0; i < s.length; i++) {
if(map.has(s.charAt(i))) { // map에 (, [, { 이 있으면
stack.push(s.charAt(i)); // (, [, { 를 stack에 push
} else {
let pop = stack.pop(); // pop = (, [, {
if(map.get(pop) !== s.charAt(i)) { // i가 ), ], } 와 다르면
return false; // 결과는 false
}
}
}
return stack.length === 0;
};
new Map()
: key(키)-value(값) 쌍을 저장하며 각 쌍의 삽입 순서도 기억하는 콜렉션
map.set(key, value)
: key를 이용해 value를 저장
map.has(key)
: key가 존재하면 true, 존재하지 않으면 false를 반환
map.get(key)
: key에 해당하는 value를 반환, key가 존재하지 않으면 undefined를 반환
map.delete(key)
: key에 해당하는 값을 삭제
map.clear()
: 맵 안의 모든 요소를 제거
map.size
: 요소의 개수를 반환