EOJ 3124 单词表(排序)
2017-09-11 17:54
281 查看
题目
http://acm.ecnu.edu.cn/problem/3124/提取英文文本中的单词,重复出现的单词只取一个,把它们按照字典顺序排序,建立为一个单词表。
注意:单词与单词之间用空格或标点符号(逗号 (,),句号 (.), 惊叹号 (!), 问号 (?))分隔;提取的单词只包含 26 个英文字符。
解题思路
用C++做可能比较麻烦,直接上python的re模块。re.split()的第一个参数指明分隔符的模式,第二个参数为要分割的字符串。由于本题有多个分隔符,因此选取的模式使用正则表达式。
[,;.!?\s]表示匹配括号中的任意一个。更多详见使用多个界定符分割字符串。
str = list(set(str))用于对列表str中的元素去重,虽然这样会使得元素顺序被打乱,但考虑到后面依然要排序,所以这样写没有问题。
AC代码
#coding=utf-8 import re kase = 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
相关文章推荐
- EOJ 3124. 单词表
- 单词排序——一道招聘笔试题
- C语言输入英文统计单词的出现的频率排序
- EOJ——Problem #3291——素数个数排序
- C#统计文章中单词的重复次数,并且按照次数从高到低排序返回(无法处理中文)
- 利用stl统计单词出现次数并排序
- 【Two Sigma】 数字单词混合字符串排序 Mix Sort
- 尾单词长度、1 3 9 27 81 实现1-121任意算法、去除重复字符并排序、拼音转数字、按要求分解字符串
- spark+java1.8+lamda wordCount 实例,并且实现按单词出现的次数的倒序排序
- 单词排序 --- lintcode 819
- 单词排序
- 单词排序
- zoj3954 详细讲解 排序比较单词法
- 将一段话切分成单词,按字典顺序排序
- EOJ 1806 选择排序
- c++ 统计英文文本中每个单词的词频并且按照词频对每行排序
- 英文单词排序。
- 【代码】统计文件中,不同字符出现的次数(可排序,没有处理英文单词、数字和大小写)
- 9 单词排序