33// #Hard #String #Hash_Table #Math #Stack #Recursion
44// #2025_04_17_Time_8_ms_(95.70%)_Space_45.18_MB_(49.46%)
55
6+ import java .util .ArrayList ;
67import java .util .Arrays ;
78import java .util .Collections ;
89import java .util .Comparator ;
910import java .util .HashMap ;
10- import java .util .LinkedList ;
1111import java .util .List ;
1212import java .util .Map ;
1313import java .util .TreeMap ;
@@ -77,7 +77,7 @@ private int countStars(String s) {
7777 }
7878 }
7979 }
80- List <String > ans = new LinkedList <>();
80+ List <String > ans = new ArrayList <>();
8181 for (String k : map .keySet ()) {
8282 ans .add (map .get (k ) + k );
8383 }
@@ -88,9 +88,9 @@ private List<Term> dewIt(int a, int b) {
8888 if (braces [a ] == b ) {
8989 return dewIt (a + 1 , b - 1 );
9090 }
91- List <Term > ans = new LinkedList <>();
92- List <Term > buffer = new LinkedList <>();
93- buffer .add (new Term (1 , new LinkedList <>()));
91+ List <Term > ans = new ArrayList <>();
92+ List <Term > buffer = new ArrayList <>();
93+ buffer .add (new Term (1 , new ArrayList <>()));
9494 for (int i = a ; i <= b ; ) {
9595 int j = i ;
9696 List <Term > curr ;
@@ -103,28 +103,28 @@ private List<Term> dewIt(int a, int b) {
103103 }
104104 String exp = s .substring (i , j );
105105 int val = 1 ;
106- List <String > vars = new LinkedList <>();
106+ List <String > vars = new ArrayList <>();
107107 if (variables .containsKey (exp )) {
108108 val = variables .get (exp );
109109 } else if (exp .charAt (0 ) <= '9' ) {
110110 val = Integer .parseInt (exp );
111111 } else {
112112 vars .add (exp );
113113 }
114- curr = new LinkedList <>();
114+ curr = new ArrayList <>();
115115 curr .add (new Term (val , vars ));
116116 }
117117 buffer = multiply (buffer , curr );
118118 if (j > b || arr [j + 1 ] == '+' || arr [j + 1 ] == '-' ) {
119119 ans .addAll (buffer );
120- buffer = new LinkedList <>();
120+ buffer = new ArrayList <>();
121121 }
122122 if (j < b ) {
123123 ++j ;
124124 if (arr [j ] == '+' ) {
125- buffer .add (new Term (1 , new LinkedList <>()));
125+ buffer .add (new Term (1 , new ArrayList <>()));
126126 } else if (arr [j ] == '-' ) {
127- buffer .add (new Term (-1 , new LinkedList <>()));
127+ buffer .add (new Term (-1 , new ArrayList <>()));
128128 }
129129 j += 2 ;
130130 }
@@ -134,7 +134,7 @@ private List<Term> dewIt(int a, int b) {
134134 }
135135
136136 private List <Term > multiply (List <Term > a , List <Term > b ) {
137- List <Term > ans = new LinkedList <>();
137+ List <Term > ans = new ArrayList <>();
138138 for (Term x : a ) {
139139 for (Term y : b ) {
140140 Term prod = x .clone ();
@@ -151,7 +151,7 @@ private static class Term {
151151
152152 public Term (int a , List <String > c ) {
153153 this .coeff = a ;
154- vars = new LinkedList <>();
154+ vars = new ArrayList <>();
155155 vars .addAll (c );
156156 }
157157
0 commit comments