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)

原文地址:https://www.cnblogs.com/SCP-514/p/13393653.html