EOJ 3124 单词表(排序)
来源:互联网 发布:nginx是什么服务器 编辑:程序博客网 时间:2024/04/30 05:41
题目
http://acm.ecnu.edu.cn/problem/3124/
提取英文文本中的单词,重复出现的单词只取一个,把它们按照字典顺序排序,建立为一个单词表。
注意:单词与单词之间用空格或标点符号(逗号 (,),句号 (.), 惊叹号 (!), 问号 (?))分隔;提取的单词只包含 26 个英文字符。
解题思路
用C++做可能比较麻烦,直接上python的re模块。
re.split()
的第一个参数指明分隔符的模式,第二个参数为要分割的字符串。由于本题有多个分隔符,因此选取的模式使用正则表达式。[,;.!?\s]
表示匹配括号中的任意一个。更多详见使用多个界定符分割字符串。
str = list(set(str))
用于对列表str中的元素去重,虽然这样会使得元素顺序被打乱,但考虑到后面依然要排序,所以这样写没有问题。
AC代码
#coding=utf-8import rekase = int(input())for t in range(kase): str = raw_input() str = re.split('[,;.!?\s]', str) #多分隔符 str = list(set(str)) #去重 print str str.sort() output = "" print "case #%d:"%t for (i, v) in enumerate(str): if v == '': continue output += v if i != len(str) - 1: output += ' ' print output
阅读全文
0 0
- EOJ 3124 单词表(排序)
- 考研单词表(全部)
- JAVA 初学单词表
- 质数单词表
- 高中英语单词表
- 单词表及其函数
- Unity单词表
- EOJ 3292 解密字符串(排序)
- 汽车暖风原理单词表
- 【考研英语】:单词表1
- 单词表制作小工具
- Java基础英语单词表
- IntelliJ IDEA 单词表--01
- EOJ 1806 选择排序
- EOJ 1807 快速排序
- EOJ 1808 冒泡排序
- EOJ 3239 最长的等差数列(排序+枚举)
- poj 2001/1056 Trie树(求单词表的最短前缀/判断立即码)
- 动手开发一个简易的 PHP for Git Server 第三章
- 红客seo浅谈:我的seo十年之路
- 数据挖掘之人工神经网络
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) F Islands
- Android集成PayPal
- EOJ 3124 单词表(排序)
- WebService路径在部署阶段改变问题
- testBatchAndFlush(android.hardware.cts.SensorTest): WaitForFlush | sensor='PROXIMITY'
- 相机标定的参数解读
- 动手开发一个简易的 PHP for Git Server 第四章
- HTML5--表单
- kubernetes DNS搭建
- 【leetcode】第70题 Climbing Stairs 题目+解析+JAVA代码
- Web前端应该从哪些方面来优化网站?