当前位置: 首页 > 后端技术 > Python

力扣-1366.RankTeamsbyVotes通过投票球队排名【Python】

时间:2023-03-26 16:42:41 Python

LeetCode1366.RankTeamsbyVotes通过投票球队排名【Medium】【Python】【排名】ProblemLeetCodeInaspecialrankingsystem,LeetCodeInaspecialrankingsystem,LeetCode从高到低到所有参加比赛的团队。团队的顺序由获得最多一票的人决定。如果两个或更多团队在第一个位置上平局,我们会考虑第二个位置来解决冲突,如果他们再次平局,我们将继续这个过程直到解决平局。如果在考虑所有位置后仍然有两个或更多团队并列,我们将根据他们的团队字母按字母顺序排列它们。给定一个字符串数组votes,这是排名系统中所有选民的投票。根据上述排名系统对所有球队进行排序。返回所有球队按排名系统排序的字符串。示??例1:输入:votes=["ABC","ACB","ABC","ACB","ACB"]输出:“ACB”解释:A队排名第一5名选民。没有其他球队被选为第一名,因此A队是第一名。B队以2名投票者排名第二,以3名投票者排名第三。C队以3名投票者排名第二,以2名投票者排名第三。作为大多数投票者中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队以2名选民排名第一,2名选民排名第二,2名选民排名第三。B队以2名选民排名第一,第二名2名投票者和2名投票者获得第三名。C队是以2个选民排名第一,以2个选民排名第二,以2个选民排名第三。有一个平局,我们根据他们的ID对团队进行排名。示例5:输入:votes=["M","M","M","M"]输出:"M"解释:只有M队参加比赛,因此它获得第一名。约束条件:1<=votes.length<=10001<=votes[i].length<=26votes[i].length==votes[j].lengthfor0<=i,jstr:n=len(votes[0])#createscore[26][n+1]score=[[0foriinrange(n+1)]forxinrange(26)]forvoteinvotes:fori,vinenumerate(vote):score[ord(v)-ord("A")][i]+=1score[ord(v)-ord("A")][-1]=ord("Z")-ord(v)+1#A:26B:25···根据它排序score.sort(reverse=True)ans=""foriinrange(26):ifscore[i][-1]!=0:ans+=chr(26-score[i][-1]+65)#int到char返回ans代码地址GitHub链接参考coder233问题解决