1366. 通过投票对团队排名


1366. 通过投票对团队排名

现在有一个特殊的排名系统,依据参赛团队在投票人心中的次序进行排名,每个投票者都需要按从高到低的顺序对参与排名的所有团队进行排位。

排名规则如下:

参赛团队的排名次序依照其所获「排位第一」的票的多少决定。如果存在多个团队并列的情况,将继续考虑其「排位第二」的票的数量。以此类推,直到不再存在并列的情况。
如果在考虑完所有投票情况后仍然出现并列现象,则根据团队字母的字母顺序进行排名。
给你一个字符串数组 votes 代表全体投票者给出的排位情况,请你根据上述排名规则对所有参赛团队进行排名。

请你返回能表示按排名系统 排序后 的所有团队排名的字符串。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rank-teams-by-votes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

int cnt[30][30];
bool cmp(char a,char b){
    a-='A';
    b-='A';
    for (int i = 0;i<26;i++){
        if(cnt[a][i]>cnt[b][i]) return true;
        if(cnt[a][i]<cnt[b][i])return false;
    }
    return a<b;
}
class Solution {
public:
    string rankTeams(vector<string>& votes) {
        int n = votes.size();
        memset(cnt,0,sizeof cnt);
        int len = votes[0].length();
        for (int i = 0;i<n;i++){
            for (int j = 0;j<len;j++){
                cnt[votes[i][j]-'A'][j]++;
            }
        }
        string s=votes[0];
        sort(s.begin(),s.end(),cmp);
        return s;
    }
};

文章作者: anlen123
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 anlen123 !
 上一篇
1071. 字符串的最大公因子 1071. 字符串的最大公因子
1071. 字符串的最大公因子 对于字符串 S 和 T,只有在 S = T + … + T(T 与自身连接 1 次或多次)时,我们才认定 “T 能除尽 S”。 返回最长字符串 X,要求满足 X 能除尽 str1 且 X 能除尽 str2。
2020-05-07 anlen123
下一篇 
1376. 通知所有员工所需的时间 1376. 通知所有员工所需的时间
1376. 通知所有员工所需的时间公司里有 n 名员工,每个员工的 ID 都是独一无二的,编号从 0 到 n - 1。公司的总负责人通过 headID 进行标识。 在 manager 数组中,每个员工都有一个直属负责人,其中 manager
2020-05-07 anlen123
  目录