ZeroJudge o087. 王子的名字
解題思路
這題給出了一個 Python 的函式,因此這裡較適合用 Python 解。必須利用此函式為各種名字評分,並依照分數排列名字。既然提姆已經給出算分函式,我們就不必知道算分函式的作用,知道他會回傳分數就好。
程式碼
Python
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
   | 
 
  def Evaluate(Name: str):                            if(type(Name) != str):                              return -1                                                                                   Score = 0                                       NameLen = len(Name)                                                                             for i in range(NameLen):                            CharCode = ord(Name[i])                         Score += ((CharCode * 1123) % 1002)                                                             while (CharCode > 0):                               Score += (CharCode % 10)                        CharCode = (CharCode // 10)                                                             return (Score % 101)
 
  n = int(input())
 
  name_list = [] for i in range(n):     name = input()     score = Evaluate(name)      name_list.append((name, score))
 
  sorted_name_list = sorted(name_list, key=lambda x: x[1])
 
  for i in sorted_name_list:     print(i[0], i[1])
 
  | 
 
