⬆︎
×

[LC] 1366 Rank Teams by Votes

Java

import java.util.*;

/**
 * <a href="https://leetcode.cn/problems/rank-teams-by-votes/">Rank Teams By Votes</a>
 * 数组;哈希表;字符串;计数;排序
 */
class Solution {
    public String rankTeams(String[] votes) {
        int[][] rank = new int[26][27];

        for (int i = 0; i < 26; i++) {
            rank[i][0] = i;
        }

        for (String vote : votes) {
            for (int i = 0; i < vote.length(); i++) {
                rank[vote.charAt(i) - 'A'][i + 1]++;
            }
        }

        Arrays.sort(rank, (o1, o2) -> {
            for (int i = 1; i < 27; i++) {
                if (o1[i] != o2[i]) {
                    return o2[i] - o1[i];
                }
            }
            return 1;
        });

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < votes[0].length(); i++) {
            sb.append((char) (rank[i][0] + 'A'));
        }

        return sb.toString();
    }
}

发表评论