1. 程式人生 > 實用技巧 >PTA 乙級 1042 字元統計 (20分)

PTA 乙級 1042 字元統計 (20分)

測試點2,3:並列,輸出按字母序最小的那個字母

Python

沒想起來字典的時候,用了兩個列表

第一版

 1 s = input().lower()     #轉化為小寫字母
 2 count = 0
 3 n = []
 4 word = []
 5 tu = set(s)             #轉化為集合,方便遍歷
 6 for i in tu:
 7     if('a' <= i <= 'z'):        #英文字母
 8         n.append(s.count(i))    #出現次數
 9         word.append(i)          #
儲存字母(與n的角標相同) 10 for i in range(len(n)): 11 if count < n[i] or (count == n[i] and word[i] < out): #or的條件是並列輸出按字母序最小的那個字母 12 count = n[i] 13 out = word[i] 14 print("{} {}".format(out, count))

第二版

 1 s = sorted(input().lower())         #按unicode順序進行排序,解決並列字母序的問題
 2 count = 0
3 d = {} #{字母:出現次數}字典 4 for i in s: 5 if('a' <= i <= 'z'): #英文字幕 6 if i in d: 7 d[i] += 1 8 else: 9 d[i] = 1 10 w = max(d.values()) #找到最大值 11 for i in d.keys(): #找到最大值對應的鍵值後直接輸出
12 if d[i] == w: 13 print("{} {}".format(i, w)) 14 exit(0)