1
class Solution {
2
public String rankTeams(String[] votes) {
3
int n = votes.length;
4
int teams = votes[0].length();
5
Map<Character, int[]> map = new HashMap<>();
6
List<Character> chars = new ArrayList<>();
7

8
for (int i = 0; i < teams; i++) {
9
char team = votes[0].charAt(i);
10
map.put(team, new int[teams]);
11
chars.add(team);
12
}
13

14
for (int i = 0; i < n; i++) {
15
String round = votes[i];
16
for (int j = 0; j < round.length(); j++) {
17
map.get(round.charAt(j))[j] += 1;
18
}
19
}
20

21
chars.sort(
22
(a, b) -> {
23
int[] l1 = map.get(a);
24
int[] l2 = map.get(b);
25
for (int i = 0; i < l1.length; i++) {
26
if (l1[i] < l2[i]) {
27
return 1;
28
} else if (l1[i] > l2[i]) {
29
return -1;
30
}
31
}
32
return a.compareTo(b);
33
});
34

35
StringBuilder sb = new StringBuilder();
36
for (char c : chars) {
37
sb.append(c);
38
}
39
return sb.toString();
40
}
41
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0