ACM STL应用-——小安的字典set
来源:互联网 发布:2017淘宝司法拍卖房产 编辑:程序博客网 时间:2024/05/16 06:59
原题链接:
http://newoj.acmclub.cn/problems/1690
题目描述:
小安很喜欢英语,她渴望有一本自己独特的字典,但写一本字典并不容易,所以她想出了一个办法:从她最喜欢的一本书中挑出所有不同的单词,按照字典序排列一下就完成了字典的雏形啦。可是,这是一个很大的工程量,为了不让妹子失望,你打算写个程序来完成她的梦想。
你的程序要求按字典序列举出给定输入文本中的所有单词,这个问题中,一个单词的定义是一连串大写或小写字母,单词也可能只有一个字母。同时你还要注意大小写问题,比如“Apple”,“apple” 或 “APPLE”是一样的。
输入:
输入不超过5000行的文本(英文),每行不超过200个字母,输入以EOF终止
输出:
输出文本中出现的不同单词的列表,按字典序排列,一行一个单词,并且都是小写,可以确定的是文本中的单词不超过5000个。
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.
a
adventures
blondes
came
disneyland
fork
going
home
in
left
read
road
sign
so
the
they
to
two
went
were
when
在这个过程中,需要一个一个字符的接收数据,使用getchar()函数,直到接收到的数据为EOF为止,windows下的EOF就是新行按下ctrl+z,
判断接收到的是不是字母,如果是小写字母的话,就直接连接到一个字符串上,如果是大写字母的话,就先转换成小写字母,再连接到字符串上,
如果不是字母的话,就将字符串插入到set中,并将字符串初始化为"".
需要注意的是,set中的第一个元素是"",所以要从第二个元素开始遍历。
原因:“”的ascii值要比字母的小,而且在程序运行过程中将字符串初始化成了"",如果下一个字符不是字母的话,那“”就会被插入到set中
代码:
#include <bits/stdc++.h>//大小写字母的转换 大写字母+32=小写字母 小写字母-32=大写字母 using namespace std;int main(){set<string> s1;set<string>::iterator t1,t2;char s2; string s3; while((s2=getchar()) != EOF){ if(s2 >= 'a'&&s2 <= 'z'){ s3=s3+s2; }else if(s2 >= 'A'&&s2 <= 'Z'){ s2+=32; s3=s3+s2; //cout<<s3<<endl;} else{ //cout<<s3<<endl;s1.insert(s3);//set集合中不允许有重复元素,所以这样存储是不会出现问题的 s3="";//cout<<s3;} } // cout<<"yes"; // int count=s1.size(); //cout<<count; t1 = s1.begin(); t2 = s1.end(); for(t1 = ++t1;t1 != t2;t1++) cout<<*t1<<endl; return 0;}
- ACM STL应用-——小安的字典set
- UVA 10815 Andy's First Dictionary 安迪的字典 stl应用 set+string做法
- STL应用——神奇的set
- STL——set的应用
- 小安的字典
- ACM STL的应用
- 擅长排列的小明 STL set应用
- 【C++ STL应用与实现】0: 感恩STL——STL, ACM和年轻的我们
- STL Set的综合应用
- HDU ACM 4585 Shaolin->STL中set或map的应用
- STL应用-——懒省事的小明
- STL — — set
- STL——set
- STL—set
- stl学习—set
- 安迪的第一个字典(set容器)
- 安迪的第一本字典(set)-uva 10815
- 安迪的第一本字典 (using std::set) UVA
- 无标题
- 二次修改:【练习题】构造方法的重载:Vehicles(交通工具)-Car(小汽车)和Truck(卡车)类继承于Vehicles类
- 使用python证明细菌繁殖按指数增长
- INT 21H 指令说明及使用方法
- 购物车修改
- ACM STL应用-——小安的字典set
- hibernate框架cascade和inverse的区别(十六)
- MIPS汇编 求差集
- Angular购物车
- Vue.js 教程
- CentOS 7.4 数据库的安装
- android studio二级购物车的反选全选
- 鱼眼图像校正(球面等距投影模型)_IV
- flask天气预报json数据的读取