📅  最后修改于: 2023-12-03 15:23:03.134000             🧑  作者: Mango
该问题是ISRO CS 2013的第四个问题。该问题是一个编程问题,要求编写程序来找到一个给定的字符串中最常出现的字符和它的数量。以下是该问题的更详细说明。
给定一个字符串,编写一个程序来找到出现最频繁的字符及其数量,并将其输出。如果有多个字符出现频率相同,则输出第一个出现的字符。
输入包括一行字符串s,s中不超过1000个字符,且为 ASCII 码。
例如:abbbccddddeeeeffffg
输出包括一行,第一个数字是最常出现的字符出现的数量,第二个是该字符的 ASCII 码。
例如:4 102
aaaabbccd
4 97
可以使用一个字典来跟踪每个字符出现的次数,然后迭代字典找到出现次数最多的字符。
以下是 Python 代码实现:
s = input().strip()
char_dict = {}
for c in s:
if c in char_dict:
char_dict[c] += 1
else:
char_dict[c] = 1
max_char = ''
max_count = 0
for c, count in char_dict.items():
if count > max_count:
max_char = c
max_count = count
print(max_count, ord(max_char))
由于需要迭代字符串和字典,因此时间复杂度为O(n)。
该算法使用了一个字典存储每个字符的出现次数,因此空间复杂度为O(字符集大小)。在本例中,由于我们只考虑 ASCII 码,因此空间复杂度为O(128)。