I guess what I’m curious about in my one “musings” post is what code wars calls “fundamentals”. This is one such question. I think it’s a really nice one. It is very approachable and understandable, but finicky enough where it’s not completely trivial. It also invites the question about certain “quality of life” improvements one can find in a language. If nothing else, I’m a big proponent of the “max” function, which can play a role here. Mea culpa, I hadn’t read the question fully and forgot the case if there are two candidate numbers.
def highest_rank(arr):
counter = {}
for x in arr:
if x not in counter:
counter[x] = 0
counter[x] += 1
maxCount = 0
maxCand = None
for k in counter:
if maxCount < counter[k]:
maxCount = counter[k]
maxCand = k
if maxCount == counter[k] and maxCand is not None:
maxCand = max(maxCand, k)
return maxCand