- 题解
1908 AI编写
- @ 2022-12-11 20:32:24
n, m = map(int, input().split())
# 初始化一个字典,存储每种方块出现的次数
counts = {}
# 循环读入每一行,统计每种方块出现的次数
for i in range(n):
line = input()
for j in range(m):
if line[j] in counts:
counts[line[j]] += 1
else:
counts[line[j]] = 1
# 查找出现次数最多的方块
max_count = 0
max_block = None
for block, count in counts.items():
if count > max_count:
max_count = count
max_block = block
# 输出结果
print(max_block)
print(max_count)
该程序的原理是:
- 读入 N 和 M,初始化一个字典 counts,存储每种方块出现的次数
- 循环读入每一行,统计每种方块出现的次数
- 查找出现次数最多的方块,并输出
以上为AI编写的方法1,下面是AI给出的方法2:
你可以使用 Python 的字典(dictionary)来解决这个问题。字典是一种数据类型,可以将键(key)和值(value)相关联。你可以把字典想象成一个“字母与方块数量”的映射关系。
首先,我们从输入读取城墙的维度 N 和 M,然后使用一个循环读取每一层的方块。在每一次读取方块时,我们都检查字典中是否已经存在这个字母。如果字典中没有该字母,我们就将它添加到字典中,并将它的方块数量设为1。如果字典中已经存在这个字母,我们就将它的方块数量加1。
接下来,我们要找出字母对应的方块数量最多的那个字母。我们可以使用 Python 的 max() 函数来找到字典中对应的最大值。最后,我们只需要输出这个字母和它的方块数量即可。
# 读取城墙的维度
n, m = map(int, input().split())
# 创建一个字典,用来存储字母与方块数量的映射关系
d = {}
# 读取每一层的方块
for i in range(n):
# 读取一层的方块,并将它们存储在一个字符串
s = input()
# 遍历字符串中的每一个字母
for ch in s:
# 如果该字母不在字典中,就将它添加到字典中,并将它的方块数量设为1
if ch not in d:
d[ch] = 1
# 如果该字母已经在字典中,就将它的方块数量加1
else:
d[ch] += 1
#找到字母对应的方块数量最多的那个字母
max_ch = max(d, key=d.get)
#输出这个字母和它的方块数量
print(max_ch)
print(d[max_ch])
在上面的代码中,我们使用了字典 d 来存储字母与方块数量的映射关系。我们首先创建了一个空字典,然后在读取每一层的方块时,我们遍历这一层的所有方块,并检查字典中是否已经存在这个字母。如果该字母在字典中不存在,我们就将它添加到字典中,并将它的方块数量设为1;如果该字母已经存在,我们就将它的方块数量加1。
最后,我们使用 max() 函数找到字母对应的方块数量最多的那个字母,并输出这个字母和它的方块数量。在调用 max() 函数时,我们需要指定一个 key 函数,用来指定我们想要比较的是字母对应的方块
1 条评论
-
倒马桶天勾巅峰贾巴尔 (tz2214) @ 2022-12-14 15:53:19已修改看不懂啊😄
- 1