小蓝记英语单词

题目:

解法一:

  1. 从键盘读入数据赋值给word
  2. 创建一个空字典用于存放之后单词中的每一个字母及其出现的次数
  3. 遍历单词中的每个字母,如果出现的字母在字典(即之前遍历到),就让该字母的值加1,若果出现的字母不在字典中,就利用这个字母作为键创建新的键值对,并让值等于1;
  4. 定义一个初始的出现次数最多的字母max_char和最大次数值max_count,遍历字典中的键和值,并每次都将拿键的值与最大次数值max_count进行比较,若键的值比最大次数值,则将键的值赋给max_count,键赋给max_char,否则不进行操作。如果出现键的值等于最大次数值,则保留字典序最小的

可能不理解的点:items() 返回的是视图对象,视图是可迭代的,你可以遍历它来访问字典中的每一项。值得提的是items() 返回的视图对象,它并不会复制字典,而是返回一个指向原字典的指针。这意味着如果你更改原字典,视图也会相应地改变。

word = input()  # 输入单词
char_count = {}  # 创建一个字典用于存储每个字母出现的次数

# 遍历单词中的每个字母,更新字典中每个字母出现的次数
for char in word:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1

# 统计出现次数最多的字母和出现次数
max_char = 'a'
max_count = 0
for char, count in char_count.items():#这里分别遍历键和值
    if count > max_count: #不断地对每个字母出现的次数进行比较,更新最大次数以及出现次数最大的字母
        max_char = char
        max_count = count
    elif count == max_count and char < max_char:  # 在比较过程中,如果有多个字母出现的次数相等,则选择字典序最小的那个,然后继续进入循环
        max_char = char

print(max_char)
print(max_count)

解法二:

相比较第一种的解法需要将一个单词进行遍历,找出每个字母,并通过累加计算其出现的次数,以键值对的形式存储在字典中,第二种方法,遍历一个单词,将每个字母传入count()函数中就能得到这个字母在单词中出现的次数,在每一个循环里面就进行了比较,所以遍历完就能得出最大出现次数。

  1. 从键盘读入数据赋值给word
  2. 对word分别进行两次for循环进行遍历,一次获取到元素最大的出现次数是多少,一次获取到出现次数最大的元素,并存储到一个列表中
  3. 第二次是for循环获取到的列表,用sort()函数将其对相同的元素进行下标排序,下标小的排序在前面
  4. 对结果进行输出
# 请在此输入您的代码
# word来存储从键盘输入的字符串数据
print("请输入单词")
word = input()
# a为出现最多的次数
a = 0
# 列表b用来存储出现次数最多的元素
b = []
# 遍历单词
for i in word:
    # 计算每个字母出现的总次数,并赋值给c
    c = word.count(i)
    # print(c)
    # 如果c>=a,即元素出现次数比上一个大的,赋值给a
    if c >= a:
        # a为元素出现的最大次数
        a = c
# 遍历字符串列表
for j in word:
    # 判断是否为出现次数最多的元素
    if word.count(j) == a:
        # 如果是出现次数最多的元素,则把该元素添加到列表b中
        b.append(j)
 
# 对列表b的元素进行升序排列,排序出现次数一样的字母,将下标小的放在前面
b.sort()
# print(b.sort())
#打印出第一个出现次数最多的元素
print(b[0])
# 打印出元素出现最多的次数
print(a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值