PTA 乙級 1042 字元統計 (20分)
阿新 • • 發佈:2020-07-28
測試點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 = 03 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)