【UVA - 10815】Andy's First Dictionary (set)

Andy‘s First Dictionary

Description

不提英文了 直接上中文大意吧

XY学长刚刚立下了再不过CET就直播xx的flag,为了不真的开启直播模式,XY学长决定好好学习英语。于是他每天都读一篇只包含生词的英语文章,并以自己高达450的智商在一秒钟之内记忆下来。

现在给你一篇XY学长今天要读的文章,请你写一个程序,输出他都学习到了哪些单词。
要求:如果文章中有相同的单词,那么仅仅输出一次;而且如果两个单词只有大小写不同,将他们视为相同的单词。

Input

测试数据将输入一篇文章。不超过5000行,每一行最多200个字符,并以EOF结束。

Output

按照字典序输出他学到的单词,每行输出一个单词,输出单词时所有的字母全部小写。 
数据保证最多有5000个需要输出的单词。

Sample Input

Adventures in Disneyland

Two blondes were going to Disneyland when they came to a fork in the road. The sign read: "Disneyland Left."

So they went home.

Sample Output

a

adventures

blondes

came

disneyland

fork

going

home

in

left

read

road

sign

so

the

they

to

two

went

were

when

Hint

输入可能包含标点符号,但标点符号显然不能算作单词的一部分。

题目链接:

https://vjudge.net/problem/UVA-10815

既然不重复,且按顺序排列,那自然是用set了。先一个一个读入单词,然后转小写,用字符串输入输出流存进set,然后遍历set即可

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define ll long long
#define INF 0x3f3f3f3f
#define ME0(x) memset(x,0,sizeof(x))
using namespace std;
set<string> world;
set<string> ::iterator it;
string s;
int main()
{
    while(cin>>s)
    {
        int len=s.length();
        for(int i=0; i<len; i++)
        {
            if(isalpha(s[i]))//判断是否是英文字母
                s[i]=towlower(s[i]);
            else
                s[i]=‘ ‘;
        }
        string buf;
        stringstream ss(s);//stringstream主要是用在將一个字符串分割,(遇到空格,回车)分割,方便统计、存入单词
        while(ss>>buf)
            world.insert(buf);
    }
    for(it=world.begin();it!=world.end();it++)//遍历set
        cout<<*it<<endl;
}

【UVA - 10815】Andy's First Dictionary (set)

原文地址:https://www.cnblogs.com/sky-stars/p/10988865.html

时间: 2024-10-25 15:06:46

【UVA - 10815】Andy's First Dictionary (set)的相关文章

【UVa 10815】Andy&#39;s First Dictionary

真的只用set和string就行了. 如果使用PASCAL的同学可能就要写个treap什么的了,还要用ansistring. #include<cstdio> #include<cstring> #include<iostream> #include<string> #include<set> using namespace std; string s; string now; set<string> dict; bool is_al

【UVA - 10474 】Where is the Marble?(排序)

Where is the Marble? Descriptions: Raju and Meena love to play with Marbles. They have got a lot of marbles with numbers written on them. At the beginning, Raju would place the marbles one after another in ascending order of the numbers written on th

【Hibernate步步为营】--单向关联一对一映射(一)

上篇文章对多对一的关联映射做了详细的分析,它在实现上可以有两种方式,并且这两种方式实现也很简单,关键是标签<many-to-one>的使用,它分别指明了多端和一端的映射关系,这种映射关系既是对象模型中的聚合关系.接下来继续讨论关联映射. 一.唯一外键 唯一外键说的是数据库表中的每一行的外键唯一对应着另一张表中的主键,也就是说一个表的主键作为另一张表的外键,并且它们之间的关系是唯一的,这种反应到关系模型中如下图所示: 上图的两个实体表,分别为人和身份证,很明显的一个人对应着一个身份证.身份证作为

【UI插件】简单的日历插件(下)—— 学习MVC思想

前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么就应该考虑其它UI库的接入问题 这个意思就是,我们的系统中所有UI插件应该有一些统一行为,我们如果希望统一为所有的插件加一点什么东西,需要有位置可加 这个意味着,可能我们所有的插件需要继承至一个抽象的UI类,并且该类提供了通用的几个事件点 ② 上次做的日历插件虽然说是简单,其耦合还是比较严重的(其实

【Linux学习】Linux的文件权限(一)

Linux操作系统是一个非常优秀的操作系统,同时也是一个多用户.多任务的操作系统.那么这就意味着会有很多的人同时使用同一个操作系统的情况.这时,对于一个用户来说,保护好自己的隐私权就成了一个很关键的问题. ★用户与用户组 "用户与用户组"能很好的解决这个问题,用户可以根据自己的意愿设置自己的文件的权限. ●  文件所有者 文件所有者顾名思义就是拥有文件的用户.如果我的用户下面有一些比较隐私的文件不希望别人看见,我就可以设置文件的权限:只有自己的用户(文件所有者)可以修改或者查看这些文件

UVa10815 Andy&#39;s First Dictionary (STL)

链接:http://acm.hust.edu.cn/vjudge/problem/18649分析:set容器应用.set中每个元素最多只出现一次.自定义类型也可以构造set,必须定义“小于”运算符.set中的元素从小到大已排好序. 1 #include <iostream> 2 #include <string> 3 #include <cctype> 4 #include <set> 5 #include <sstream> 6 using n

【POJ 2029】 Get Many Persimmon Trees(DP)

[POJ 2029] Get Many Persimmon Trees(DP) Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4024   Accepted: 2628 Description Seiji Hayashi had been a professor of the Nisshinkan Samurai School in the domain of Aizu for a long time in the 18

【Shader实战】卡通风格的Shader(一)

写在前面 呜,其实很早就看到了这类Shader,实现方法很多,效果也有些许不一样.从这篇开始,陆续学习一下接触到的卡通类型Shader的编写. 本篇的最后效果如下(只有怪物和苹果部分): 本篇文章里指的卡通效果具有如下特点: 简化了模型中使用的颜色 简化光照,使模型具有明确的明暗区域 在模型边缘部分绘制轮廓(也就是描边) 我们再来回顾一下Unity Surface Shader的pipeline.(来源:Unity Gems) 由上图可以看出,我们一共有4个可修改渲染结果的机会(绿色方框中的代码

【华为练习题 】 n位水仙花数(初级)

[华为练习题 ] n位水仙花数(初级) 题目 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水仙花数 解答 #include <iostream> #include <vector> using namespace std; bool isRight(int n){ vector<int> v; int sum = 0, tmp =