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']]
广告