Using
names.txt, a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score.For example, when the list is sorted into alphabetical order,
COLIN, which is worth3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So,COLINwould obtain a score of938 × 53 = 49714.
I love abusing map.
import re def word_sum(word): word_sum = sum(map(lambda letter: ord(letter)-ord('A')+1, word)) return word_sum def name_scores_sum(path): f = file(path) names = f.read() names = sorted(re.findall('([A-Z]+)',names)) sums = map(word_sum,names) scores = map(lambda (index,sum): index*sum, enumerate(sums,1)) return sum(scores) >>> name_scores_sum(path) 871198282 |
Tags: file, map, problem22, project euler, python, strings, sum
Wow, now every idiot who finds this site can just solve the project euler problems with copy and paste – very intelligent
I guess that they could, but what on earth would they get out of it?
Stack,
The forums at PE are close, the problems are 7 years old and these solution show more thought and intelligence than most of the useless comments in the forum. Such as: “I did it like smurf001″ or “Here’s my sloppy inefficient code I hacked.”
Think about how much you sound like a self-righteous prig when you make such asinine comments without consideration for purpose.