Python程序查找公司名称中出现频率最高的三个字母


假设我们有一个公司名称作为字符串。我们需要找到公司名称中最常见的三个字符,并按照以下规则显示它们:

  • 选择出现频率最高的三个字母
  • 按降序排序
  • 如果某些字符的频率相同,则按字母顺序排列

因此,如果输入类似于 s = "TUTORIALSPOINT",则输出将为 [[3, 'T'], [2, 'I'], [2, 'O']]

为了解决这个问题,我们将遵循以下步骤:

  • x := 一个包含字母和s中字母频率的映射
  • res := 一个新的列表
  • 对于x中的每个i,执行以下操作:
    • 将(x[i], i)对插入到ret中
  • res := 基于字母顺序排序后的res
  • res := 基于频率(逆序)排序后的res
  • 返回res中的前三个元素

示例

让我们看看以下实现以获得更好的理解

from collections import Counter
def solve(s):
   x = Counter(s)
   res = []

   for i in x:
      res.append([x[i], i])

   res = sorted(res, key=lambda cnt: cnt[1])
   res = sorted(res, key=lambda cnt: cnt[0], reverse=True)

   return res[:3]

s = "TUTORIALSPOINT"
print(solve(s))

输入

"TUTORIALSPOINT"

输出

[[3, 'T'], [2, 'I'], [2, 'O']]

更新于: 2021年10月12日

486 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告