Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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?
- namesHandle = open('names.txt','r')
- namesString = namesHandle.readline()
- namesHandle.close()
- namesListTemp = namesString.split(',')
- namesList = []
- for i in namesListTemp:
- namesList.append(i.strip('"'))
- def selSort(L):
- for i in range(len(L) - 1):
- minIndx = i
- minVal= L[i]
- j = i + 1
- while j < len(L):
- if minVal > L[j]:
- minIndx = j
- minVal= L[j]
- j += 1
- temp = L[i]
- L[i] = L[minIndx]
- L[minIndx] = temp
- selSort(namesList)
- alpha = {'A':1,'B':2,'C':3,'D':4,'E':5,'F':6,'G':7,'H':8,'I':9,'J':10,'K':11\
- ,'L':12,'M':13,'N':14,'O':15,'P':16,'Q':17,'R':18,'S':19,'T':20,'U':21\
- ,'V':22,'W':23,'X':24,'Y':25,'Z':26}
- count = 0
- for i in range(len(namesList)):
- subCount = 0
- for j in namesList[i]:
- subCount += alpha[j]
- count += (subCount*(i+1))
- print count
Advertisement
Add Comment
Please, Sign In to add comment