鱼C论坛

 找回密码
 立即注册
查看: 2392|回复: 1

python求助

[复制链接]
发表于 2022-10-31 17:09:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述:
词频分析技术是一项简单但应用广泛的技术。许多密码分析技术都利用了英文
语言的统计特性,从众多英语文章搜集统计 26 个英文字母出现的频率。比如,字
母“e”是出现频率最高的字母,因此加密以后的文章中出现频率最高的字母可以
看做由“e”加密而成。
本题中,考虑三字母组成的固定序列,即统计相邻三个字母序列的出现频率,
比如前三个最常见的三字母组为 the,ing,and(出现的频数递减)。现在给定数
行加密后的文本,每行代表一句密文,请利用词频分析技术,分析最频繁出现的密
文,及其出现的次数。
注意,如果某一句密文字母数目少于 3,则不计入考虑。并且总是保证出现次
数最多的三字母固定序列存在且唯一。
输入:
第一行为一个正整数 n,代表一共有 n 行密文。
后面 n 行,每行输入一串仅由小写英文字母构成的字符串,代表一句密文。
输出:
输出一行,为最频繁出现的密文及其出现次数,以空格间隔。
输入样例 1
1
banana
输出样例 1
ana 2
输入样例 2
2
abcab
cab
输出样例 2
cab 2
样例 2 解释:
第一行三字母组为“abc”,“bca”,“cab”,第二行三字母组为“cab”。因此
出现次数最多的三字母组为“cab”,出现次数为 2。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-31 17:33:07 | 显示全部楼层
n = input()
dic = {}
for i in range(0,n):
  string = input()
  if len(string) < 3:
    continue
  else:
    for j in range(0, len(string)-2):
      abc = string[j:(j+3)]
      if abc in dic:
        dic[abc] += 1
      else:
        dic[abc] = 1
ans = max(dic.items(),key=lambda x:x[1])
print(ans,dic[ans])
这个怎么改呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-25 21:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表