스크랩 문제 - 유효한 괄호
9608 단어 문제를 풀다
1.switch case
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let arr = []
if(s.length % 2 !== 0) return false
for(let i = 0; i < s.length; i++){
let letter = s[i]
switch(letter){
case '(': {
arr.push(letter)
break
}
case '{': {
arr.push(letter)
break
}
case '[': {
arr.push(letter)
break
}
case ')': {
if(arr.pop() !== '(') return false
break
}
case '}': {
if(arr.pop() !== '{') return false
break
}
case ']': {
if(arr.pop() !== '[') return false
break
}
}
}
return !arr.length
};
2. 해시맵
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let arr = []
let map = {
'(': ')',
'{': '}',
'[': ']'
}
if(s.length % 2 !== 0 ) return false
for(let i = 0;i < s.length; i++){
let letter = s[i]
if(map[letter]){
arr.push(letter)
}
else {
if( map[arr.pop() ] !== letter) return false
}
}
return !arr.length
};