PyPE solution to PE problem 22
PyPE solution to PE problem 22
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Scott Armitage
- Completed by
- Scott Armitage
Whiteboard
ProjectEule
===
Using names.txt (right click and 'Save Link/Target As...'), 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 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?
Solution
--------
First, we open the file and read the data. Although it is not the most
desirable format to receive the data in, we will stick with Project Euler's
data format for when people are using this code in the future. To parse the
names, we first remove all double-quotation characters ("), and then split
into a list using commas (,) as separators. We can use Python's built-in
list sorting capabilities to sort the names into alphabetical order.
Next, we take the ordinal of each character in a name (subtracting the
constant offset of the 'A' character), sum them for the name, and then
multiply that value by the names index in the list.
Answer
------
871198282