-
Notifications
You must be signed in to change notification settings - Fork 0
/
Problem022.py
executable file
·42 lines (34 loc) · 1.16 KB
/
Problem022.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/python3
#coding:utf8
# http://projecteuler.net/problem=22
#
# PROBLEM CONTENT:
# Using the attached 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 worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN
# would obtain a score of 938 × 53 = 49714.
#
# What is the total of all the name scores in the file?
import time
def main():
names_list = None
with open('Problem022.data') as f:
# Do not use readlines() to get rid of the '\n'
names_list = f.read().splitlines()
names_list.sort()
result = 0
for index, name in enumerate(names_list):
score = 0
for letter in name:
score += (ord(letter) - ord('A') + 1)
result += (index+1)*score
print(result)
if __name__ == '__main__':
start = time.time()
main()
elapsed = time.time() - start
print('Solved in %.2f seconds' % elapsed)