Skip to content

Commit f4dfa63

Browse files
author
이연수
committed
valid parentheses
1 parent 4039896 commit f4dfa63

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package leetcode_study
2+
3+
/*
4+
* Pair Bracket 판별 문제
5+
* 스택의 LIFO의 성질을 사용해 문제 해결
6+
* 시간 복잡도: O(n)
7+
* -> 문자열 길이만큼 반복 진행: O(n)
8+
* 공간 복잡도: O(n)
9+
* -> 주어진 문자열 길이만큼 공간 필요: O(n)
10+
* */
11+
fun isValid(s: String): Boolean {
12+
val stack = mutableListOf<Char>()
13+
14+
for (element in s) {
15+
if (element == ')' || element == ']' || element == '}') {
16+
if (stack.isEmpty()) {
17+
return false
18+
} else if (stack.last() == '(' && element == ')') {
19+
stack.removeAt(stack.lastIndex)
20+
} else if (stack.last() == '[' && element == ']') {
21+
stack.removeAt(stack.lastIndex)
22+
} else if (stack.last() == '{' && element == '}') {
23+
stack.removeAt(stack.lastIndex)
24+
} else {
25+
return false
26+
}
27+
} else {
28+
stack.add(element)
29+
}
30+
}
31+
return stack.isEmpty()
32+
}

0 commit comments

Comments
 (0)