1
class Solution {
2
public:
3
static bool cmp(vector<int> a, vector<int> b) {
4
for (int i = 1; i < a.size(); i++) {
5
if (a[i] != b[i]) {
6
return a[i] > b[i];
7
}
8
}
9

10
return a[0] < b[0];
11
}
12

13
string rankTeams(vector<string> &votes) {
14
int noofteams = votes[0].size();
15
string ans = "";
16
vector<vector<int>> vec(noofteams, vector<int>(noofteams + 1, 0));
17

18
unordered_map<char, int> mp;
19
for (int i = 0; i < votes[0].size(); i++) {
20
mp[votes[0][i]] = i;
21
vec[i][0] = votes[0][i] - 'a';
22
}
23

24
for (string x : votes) {
25
for (int i = 0; i < x.size(); i++) {
26
vec[mp[x[i]]][i + 1]++;
27
}
28
}
29

30
sort(vec.begin(), vec.end(), cmp);
31

32
for (int i = 0; i < vec.size(); i++) {
33
ans.push_back(vec[i][0] + 'a');
34
}
35

36
return ans;
37
}
38
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0