File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ public static void main (String [] args ) throws IOException {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ String s = br. readLine();
9+
10+ System . out. println(solution(s));
11+ }
12+
13+ static int solution (String s ) {
14+ Deque<Character > deque = new ArrayDeque<> ();
15+ int result = 0 ;
16+ int temp = 1 ;
17+
18+ for (int i = 0 ; i < s. length(); i++ ) {
19+ char c = s. charAt(i);
20+
21+ if (c == ' (' ) {
22+ deque. push(c);
23+ temp *= 2 ;
24+ }
25+ else if (c == ' [' ) {
26+ deque. push(c);
27+ temp *= 3 ;
28+ }
29+ else if (c == ' )' ) {
30+ if (deque. isEmpty() || deque. peek() != ' (' ) {
31+ return 0 ;
32+ }
33+
34+ if (s. charAt(i - 1 ) == ' (' ) {
35+ result += temp;
36+ }
37+
38+ deque. pop();
39+ temp /= 2 ;
40+ }
41+ else if (c == ' ]' ) {
42+ if (deque. isEmpty() || deque. peek() != ' [' ) {
43+ return 0 ;
44+ }
45+
46+ if (s. charAt(i - 1 ) == ' [' ) {
47+ result += temp;
48+ }
49+
50+ deque. pop();
51+ temp /= 3 ;
52+ }
53+ }
54+
55+ return deque. isEmpty() ? result : 0 ;
56+ }
57+ }
58+ ```
You can’t perform that action at this time.
0 commit comments