File tree Expand file tree Collapse file tree 1 file changed +31
-0
lines changed
leetcode practice/array and strings Expand file tree Collapse file tree 1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {string[] } logs
3
+ * @return {string[] }
4
+ */
5
+
6
+ /* helper functions */
7
+ const logComparator = ( logA , logB ) => {
8
+ // compare body first
9
+ const bodyCompareResult = getLogBody ( logA ) . localeCompare ( getLogBody ( logB ) ) ;
10
+ if ( bodyCompareResult !== 0 ) { return bodyCompareResult ; }
11
+
12
+ return logA . localeCompare ( logB ) ;
13
+ }
14
+
15
+ const getLogBody = logStr => logStr . slice ( logStr . indexOf ( ' ' ) + 1 , logStr . length ) ;
16
+ const getIsNumLog = logStr => / \d / . test ( logStr ) ;
17
+
18
+ /* end of helper functions */
19
+
20
+ var reorderLogFiles = function ( logs ) {
21
+ const digitLogs = [ ] , letterLogs = [ ] ;
22
+ for ( log of logs ) {
23
+ if ( getIsNumLog ( getLogBody ( log ) ) ) {
24
+ digitLogs . push ( log ) ;
25
+ } else {
26
+ letterLogs . push ( log ) ;
27
+ }
28
+ }
29
+
30
+ return [ ...letterLogs . sort ( logComparator ) , ...digitLogs ] ;
31
+ } ;
You can’t perform that action at this time.
0 commit comments