File tree 3 files changed +94
-0
lines changed
solution/1300-1399/1370.Increasing Decreasing String
3 files changed +94
-0
lines changed Original file line number Diff line number Diff line change @@ -184,6 +184,39 @@ func sortString(s string) string {
184
184
}
185
185
```
186
186
187
+ ### ** Javascript**
188
+
189
+ ``` js
190
+ /**
191
+ * @param {string} s
192
+ * @return {string}
193
+ */
194
+ var sortString = function (s ) {
195
+ let rs = ' ' ;
196
+ const m = new Map ();
197
+ for (let i = 0 ; i < s .length ; i++ ) {
198
+ m .set (s[i], (m .get (s[i]) || 0 ) + 1 );
199
+ }
200
+ const keys = [... m .keys ()];
201
+ keys .sort ();
202
+ while (rs .length < s .length ) {
203
+ for (let j = 0 ; j < keys .length ; j++ ) {
204
+ if (m .get (keys[j]) != 0 ) {
205
+ rs += keys[j];
206
+ m .set (keys[j], m .get (keys[j]) - 1 );
207
+ }
208
+ }
209
+ for (let j = keys .length - 1 ; j >= 0 ; j-- ) {
210
+ if (m .get (keys[j]) != 0 ) {
211
+ rs += keys[j];
212
+ m .set (keys[j], m .get (keys[j]) - 1 );
213
+ }
214
+ }
215
+ }
216
+ return rs;
217
+ };
218
+ ```
219
+
187
220
### ** ...**
188
221
189
222
```
Original file line number Diff line number Diff line change @@ -158,6 +158,39 @@ func sortString(s string) string {
158
158
}
159
159
```
160
160
161
+ ### ** Javascript**
162
+
163
+ ``` js
164
+ /**
165
+ * @param {string} s
166
+ * @return {string}
167
+ */
168
+ var sortString = function (s ) {
169
+ let rs = ' ' ;
170
+ const m = new Map ();
171
+ for (let i = 0 ; i < s .length ; i++ ) {
172
+ m .set (s[i], (m .get (s[i]) || 0 ) + 1 );
173
+ }
174
+ const keys = [... m .keys ()];
175
+ keys .sort ();
176
+ while (rs .length < s .length ) {
177
+ for (let j = 0 ; j < keys .length ; j++ ) {
178
+ if (m .get (keys[j]) != 0 ) {
179
+ rs += keys[j];
180
+ m .set (keys[j], m .get (keys[j]) - 1 );
181
+ }
182
+ }
183
+ for (let j = keys .length - 1 ; j >= 0 ; j-- ) {
184
+ if (m .get (keys[j]) != 0 ) {
185
+ rs += keys[j];
186
+ m .set (keys[j], m .get (keys[j]) - 1 );
187
+ }
188
+ }
189
+ }
190
+ return rs;
191
+ };
192
+ ```
193
+
161
194
### ** ...**
162
195
163
196
```
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string } s
3
+ * @return {string }
4
+ */
5
+ var sortString = function ( s ) {
6
+ let rs = '' ;
7
+ const m = new Map ( ) ;
8
+ for ( let i = 0 ; i < s . length ; i ++ ) {
9
+ m . set ( s [ i ] , ( m . get ( s [ i ] ) || 0 ) + 1 ) ;
10
+ }
11
+ const keys = [ ...m . keys ( ) ] ;
12
+ keys . sort ( ) ;
13
+ while ( rs . length < s . length ) {
14
+ for ( let j = 0 ; j < keys . length ; j ++ ) {
15
+ if ( m . get ( keys [ j ] ) != 0 ) {
16
+ rs += keys [ j ] ;
17
+ m . set ( keys [ j ] , m . get ( keys [ j ] ) - 1 ) ;
18
+ }
19
+ }
20
+ for ( let j = keys . length - 1 ; j >= 0 ; j -- ) {
21
+ if ( m . get ( keys [ j ] ) != 0 ) {
22
+ rs += keys [ j ] ;
23
+ m . set ( keys [ j ] , m . get ( keys [ j ] ) - 1 ) ;
24
+ }
25
+ }
26
+ }
27
+ return rs ;
28
+ } ;
You can’t perform that action at this time.
0 commit comments