题目描述
找到一串字符串中字母出现次数最多的字母。
输入一串字符串,后面可接选项是否考虑大小写,预设为考虑。
如果字母出现次数相同,输出字典序中最小的字母,输出格式见下述样例。
注意
本题包含多个测试用例,请通过 while 循环处理多个测试用例。
例子:
- abcdeABCDEA 结果为 A 2
- abcdeABCDEa 结果为 a 2
- abcdeABCDE 结果为 A 1
- abcdeABCDEA true 结果为 A 2
- abcdeABCDEa true 结果为 a 2
- abcdeABCDE true 结果为 A 1
- abcdeABCDEA false 结果为 a 3
- abcdeABCDEa false 结果为 a 3
- abcdeABCDE false 结果为 a 2
示例1:
输入:
1 | abcdeABCDE |
输出:
1 | A 1 |
提示样例1:
- 样例1中,默认考虑区分大小写,不进行转换,所有字符出现次数相同,字符'A'字典序最小,出现次数为1,所以输出A 1。
示例2:
输入:
1 | abcdeABCDEA false |
输出:
1 | a 3 |
提示样例2:
样例2中,false不考虑大小写,全部转换为小写后,字符'a'出现次数最多,出现次数为3,所以输出a 3
from collections import Counter
while True:
string = input()
if string:
if "false" in string:
string = string.split(" ")[0].lower()
elif "true" in string:
string = string.split(" ")[0]
str_list = Counter(string).most_common()
print(str_list)
max_num = str_list[0][1]
i = 0
for item in str_list:
if item[1] == max_num:
i += 1
print(f"{i}个字母重复次数最多")
if i == 0:
print(str_list[0][0], max_num)
else:
print(sorted(dict(str_list[:i]))[0], max_num)
个人解法,如有错误,欢迎指正,Thanks♪(・ω・)ノ