前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每周一坑】特殊回文数

【每周一坑】特殊回文数

作者头像
Crossin先生
发布2018-04-17 14:07:40
8080
发布2018-04-17 14:07:40
举报

Thank God It’s Friday!

again!

又到了惬意的周末了,祝大家周末愉快,闲暇之余记得练习编程技能啊!另外,上海的朋友可以安心在家写代码了,因为明天后天下雨。

一名光荣的天气播报员尽到了自己的义务! 收收心,看看本周的为大家准备的题目。

特殊回文数

123321是一个非常特殊的数,它从左边读和从右边读是一样的,我们称这样的数为回文数。

给你一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n(5<=n<=54)。 按从小到大的顺序输出满足条件的整数。

示例
代码语言:javascript
复制
>>>n = 52
>>>func(n)
899998
989989
998899

欢迎大家积极投稿,我们将选出优秀的解答在下期展示。

统计英文词频解答

这道题实现容易,使用正则表达式和 Counter 就可以轻松完成。

代码语言:javascript
复制
# 引入 Counter 和 re
from collections import Counter
import re

打开并读取文件,取出所有单词,并全部转换为小写字母。

代码语言:javascript
复制
with open(r'Jane Eyre.txt','r') as f:
    all_words = f.read().lower()

虽然通过正则可以忽略大小写进行匹配,但为了方便之后统计重复次数,我们还是强制都转为小写。

使用 re 模块匹配所有单词

代码语言:javascript
复制
rule = re.compile(r'\w+')
words = re.findall(rule,all_words)

最后使用 Counter 计数并统计

代码语言:javascript
复制
counter_words = Counter(words)
common_words = counter_words.most_common(10)

关于 Counter 的用法可见上期【编程课堂】计数器 Counter

最后整理一下输出这样的结果

代码语言:javascript
复制
Jane Eyre.txt
=======================
1         the        7845
2         i        7255
3         and        6625
4         to        5226
5         a        4468
6         of        4366
7         you        2993
8         in        2767
9         was        2525
10         it        2413

大家可以看到,结果没有太多参考性,因为词频最高的肯定是一些人称代词、冠词、介词等无意义的词汇,好在上期解答中 @LDJ 小伙伴精心去除很多无意义的词汇,然后又生成了词云图,值得大家参考。

代码地址:

https://github.com/NyanCat12/CrossinWeekly/blob/master/NovelWordCount.py

同样是关于 Jane Eyre 的文章分析,生成的词云图为:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Crossin的编程教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 特殊回文数
    • 示例
      • 统计英文词频解答
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档