320x100
문제 : https://leetcode.com/problems/valid-parentheses/description/
'(', ')', '{', '}', '[', ']' 문자만 포함하는 문자열 s가 주어집니다. 입력 문자열이 유효한지 여부를 판단하세요.
입력 문자열이 유효한 경우는 다음과 같습니다.
열린 괄호는 같은 종류의 괄호로 닫혀야 합니다.
열린 괄호는 올바른 순서로 닫혀야 합니다.
각 닫는 괄호는 동일한 유형의 열린 괄호와 대응 되어야 합니다.
문자열을 탐색하면서 열린 괄호가 나오면 스택에 넣습니다.
닫힌 괄호가 나오는 경우 스택의 탑에 있는 괄호와 대응되지 않거나 스택이 비어있을 땐 유효한 경우가 아닙니다.
스택의 탑에 있는 열린 괄호와 탐색 중인 닫힌 괄호가 대응된다면 스택의 탑에 있는 문자를 하나 제거하고 탐색을 재개합니다.
모든 문자열을 탐색했을 때 스택이 비어있는 경우 유효한 경우가 됩니다.
시간복잡도는 O(N).
소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/20.%20Valid%20Parentheses.cpp
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[Leetcode] 71. Simplify Path (0) | 2023.04.12 |
---|---|
[Leetcode] 2390. Removing Stars From a String (0) | 2023.04.11 |
[Leetcode] 2300. Successful Pairs of Spells and Potions (1) | 2023.04.08 |
[Leetcode] 881. Boats to Save People (0) | 2023.04.07 |
[Leetcode] 1254. Number of Closed Islands (0) | 2023.04.06 |
댓글