PTA 乙级 1042 字符统计 (20分) Python
测试点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)
默默地一点点变强,细节决定成败