반응형
문제
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
문제[번역]
'(', ')', '{', '}', '[' ,']'를 포함한 문자열이 주어집니다. 문자열이 유효한지 평가하세요.
1. 열린괄호는 같은괄호로 닫혀야함.
2. 열린 괄호는 순서대로 닫혀야함.
Example 1
Input: s = "()"
Output: true
Example 2
Input: s = "()[]{}"
Output: true
Example 3
Input: s = "{[]}"
Output: true
제약조건
- 1 <= s.length <= 104
- s consists of parentheses only '()[]{}'.
접근방법
스택을 이용하면 쉽게 풀 수 있습니다.
코드
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
let map = {
")" : "(",
"}" : "{",
"]" : "["
}
let stack = [];
for(let i=0; i<s.length; i++){
if(s[i] === "(" || s[i] === "[" || s[i] === "{"){
stack.push(s[i]);
}
else if(stack[stack.length-1] === map[s[i]]){
stack.pop();
}
else{
return false;
}
}
return stack.length ? false:true;
};
주의사항
x
반응형
'공부 정리 > LeetCode' 카테고리의 다른 글
[LeetCode] Maximum Subarray (javascript) (0) | 2022.03.07 |
---|---|
[LeetCode] Search Insert Position (javascript) (0) | 2022.02.15 |
[LeetCode] Roman to Integer (Javascript) (0) | 2021.12.17 |
[LeetCode] palindrome (javascript) (0) | 2021.12.16 |
[LeetCode] Two Sum (Javascript) (0) | 2021.12.13 |
댓글