-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReorder Data in Log Files
32 lines (29 loc) · 1.15 KB
/
Reorder Data in Log Files
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution(object):
def reorderLogFiles(self, logs):
"""
:type logs: List[str]
:rtype: List[str]
"""
'''num_logs, letter_logs = [], []
lt_idn = {}
for i in logs:
if i.split()[1].isdigit():
num_logs.append(i)
else:
letter_logs.append(' '.join(i.split()[1:]))
if ' '.join(i.split()[1:]) in lt_idn:
lt_idn[' '.join(i.split()[1:])].append(i.split()[0])
else:
lt_idn[' '.join(i.split()[1:])] = [i.split()[0]]
final_lt_logs = []
for st in sorted(set(letter_logs)):
if len(lt_idn[st])>1:
final_lt_logs += [idn + ' ' + st for idn in sorted(lt_idn[st])]
else:
final_lt_logs += [lt_idn[st][0] + ' ' + st]
return final_lt_logs+num_logs'''
def sorting_algorithm(log):
if log[-1].isnumeric():
return (1,)
return (0, log.split(" ", 1)[1], log.split(" ", 1)[0])
return sorted(logs, key=sorting_algorithm)