Map letters to numbers, map words to a “score” (presumably defined by the sum of numbers from the per-letter mapping), find the highest-scoring word.
I actually like this one a lot as a set of loop exercises. It’s sort of a couple compound ones. Solution is “merely” an exercise in being fluent in loop writing. It’s a very nice junior test, I think.
def high(x):
score_map = {}
for i, letter in enumerate("abcdefghijklmnopqrstuvwxyz"):
score_map[letter] = i + 1
def score(w):
return sum([score_map[c] for c in w])
words = x.split(' ')
maxScore = 0
maxWord = ""
for w in words:
if score(w) > maxScore:
maxScore = score(w)
maxWord = w
return maxWord
Strings are a popular topic for practice interviews for newcomers to the field. I list the string questions here.