LeetCode 1366. 通过投票对团队排名(自定义排序)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1366. 通过投票对团队排名(自定义排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
現在有一個特殊的排名系統,依據參賽團隊在投票人心中的次序進行排名,每個投票者都需要按從高到低的順序對參與排名的所有團隊進行排位。
排名規則如下:
- 參賽團隊的排名次序依照其所獲「排位第一」的票的多少決定。如果存在多個團隊并列的情況,將繼續考慮其「排位第二」的票的數量。以此類推,直到不再存在并列的情況。
- 如果在考慮完所有投票情況后仍然出現并列現象,則根據團隊字母的字母順序進行排名。
給你一個字符串數組 votes 代表全體投票者給出的排位情況,請你根據上述排名規則對所有參賽團隊進行排名。
請你返回能表示按排名系統 排序后 的所有團隊排名的字符串。
示例 1: 輸入:votes = ["ABC","ACB","ABC","ACB","ACB"] 輸出:"ACB" 解釋:A 隊獲得五票「排位第一」,沒有其他隊獲得「排位第一」,所以 A 隊排名第一。 B 隊獲得兩票「排位第二」,三票「排位第三」。 C 隊獲得三票「排位第二」,兩票「排位第三」。 由于 C 隊「排位第二」的票數較多,所以 C 隊排第二,B 隊排第三。示例 2: 輸入:votes = ["WXYZ","XYZW"] 輸出:"XWYZ" 解釋:X 隊在并列僵局打破后成為排名第一的團隊。 X 隊和 W 隊的「排位第一」票數一樣,但是 X 隊有一票「排位第二」, 而 W 沒有獲得「排位第二」。 示例 3: 輸入:votes = ["ZMNAGUEDSJYLBOPHRQICWFXTVK"] 輸出:"ZMNAGUEDSJYLBOPHRQICWFXTVK" 解釋:只有一個投票者,所以排名完全按照他的意愿。示例 4: 輸入:votes = ["BCA","CAB","CBA","ABC","ACB","BAC"] 輸出:"ABC" 解釋: A 隊獲得兩票「排位第一」,兩票「排位第二」,兩票「排位第三」。 B 隊獲得兩票「排位第一」,兩票「排位第二」,兩票「排位第三」。 C 隊獲得兩票「排位第一」,兩票「排位第二」,兩票「排位第三」。 完全并列,所以我們需要按照字母升序排名。示例 5: 輸入:votes = ["M","M","M","M"] 輸出:"M" 解釋:只有 M 隊參賽,所以它排名第一。 提示: 1 <= votes.length <= 1000 1 <= votes[i].length <= 26 votes[i].length == votes[j].length for 0 <= i, j < votes.length votes[i][j] 是英文 大寫 字母 votes[i] 中的所有字母都是唯一的 votes[0] 中出現的所有字母 同樣也 出現在 votes[j] 中, 其中 1 <= j < votes.length來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/rank-teams-by-votes
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 題目意思:類似奧運會金牌榜排名
- lambda表達式簡潔,注意!!![&]里面寫&才可以識別外部變量,表示以引用傳入
總結
以上是生活随笔為你收集整理的LeetCode 1366. 通过投票对团队排名(自定义排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 162. 寻找峰值(二
- 下一篇: LeetCode 494. 目标和(DF