File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments