算法习题---5.3字典(Uva10815)
一:题目
给出一段英文,里面包含一些单词,空格和标点,单词不区分大小写,默认都为小写。按照字典序输出这些单词(这些单词不能有重复,字母全部变成小写)
(一)样例输入
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
二:代码实现
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <set>
#include <string>
#include <sstream>
#include <algorithm> using namespace std;
set<string> dict; //单词字典 int main()
{
freopen("data5_3.in", "r", stdin);
freopen("data5_3.out", "w", stdout); string str;
while (cin >> str)
{
for (int i = ; i < str.length(); i++)
if (isalpha(str[i]))
str[i] = tolower(str[i]);
else
str[i] = ' ';
stringstream ss(str);
while (ss >> str)
dict.insert(str);
}
//进行打印
for (set<string>::iterator iter = dict.begin(); iter != dict.end(); iter++)
cout << *iter << endl;
freopen("CON", "r", stdin);
freopen("CON", "w", stdout);
return ;
}
(一)stringstream存在sstream头文件中
clear() — to clear the stream 清空字符串流
str() — to get and set string object whose content is present in stream. 得到一个string对象
operator << — add a string to the stringstream object. 通过字符串对象得到一个stringstream对象
operator >> — read something from the stringstream object, 将stringstream对象中的数据输出到其他对象
包含:去除字符串中的空格
(二)字符串函数
| 函数名称 | 返回值 |
| isalnum() | 如果参数是字母数字,即字母或数字,该函数返回true |
| isalpha() | 如果参数是字母,该函数返回真 |
| isblank() | 如果参数是空格或水平制表符,该函数返回true |
| iscntrl() | 如果参数是控制字符,该函数返回true |
| isdigit() | 如果参数是数字(0~9),该函数返回true |
| isgraph() | 如果参数是除空格之外的打印字符,该函数返回true |
| islower() | 如果参数是小写字母,该函数返回true |
| isprint() | 如果参数是打印字符(包括空格),该函数返回true |
| ispunct() | 如果参数是标点符号,该函数返回true |
| isspace() |
如果参数是标准空白字符,如空格、进纸、换行符、回车 、水平制表符或者垂直制表符,该函数返回true |
| isupper() | 如果参数是大写字母,该函数返回true |
| isxdigit() | 如果参数是十六进制的数字,即0~9、a~f、A~F,该函数返回true |
| tolower() | 如果参数是大写字符,则返回其小写,否则返回该参数 |
| toupper() | 如果参数是小写字母,则返回其大写,否则返回该参数 |
算法习题---5.3字典(Uva10815)的更多相关文章
- 【算法习题】数组中任意2个(3个)数的和为sum的组合
题1.给定一个int数组,一个数sum,求数组中和为sum的任意2个数的组合 @Test public void test_find2() { int[] arr = { -1, 0, 2, 3, 4 ...
- 算法导论:Trie字典树
1. 概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tr ...
- 【算法】二叉查找树实现字典API
参考资料 <算法(java)> — — Robert Sedgewick, Kevin Wayne <数据结构> ...
- 【python cookbook】【数据结构与算法】17.从字典中提取子集
问题:想创建一个字典,其本身是另一个字典的子集 解决方案:利用字典推导式(dictionary comprehension)可轻松解决 # example of extracting a subset ...
- 【python cookbook】【数据结构与算法】8.与字典有关的计算问题
问题:在字典上对数据执行各式各样的计算(比如求最小值.最大值.排序). 解决方案:利用zip()将字典的键-值对“反转”为值-键对序列. 例如:如下字典存放的股票名称和对应的价格: >>& ...
- 【python cookbook】【数据结构与算法】7.让字典保持有序
问题:创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序: 解决方案:可以使用collections模块中的OrderedDict类来控制字典中元素的顺序.当对字典做迭代时,他会严格 ...
- 【python cookbook】【数据结构与算法】6.在字典中将键映射到多个值上
问题:一个能将键(key)映射到多个值的字典(即所谓的一键多值字典[multidict]) 解决方案:如果想让键映射到多值,需要将这多个值保持到另一个容器如列表或集合中: >>> d ...
- 小甲鱼Python第二十三讲课后习题--025,字典
笔记: 1.字典是Python中唯一的映射类型 2.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开. 3.可以用dict()直接创建字典,如di ...
- July 算法习题 - 字符串4(全排列和全组合)
https://segmentfault.com/a/1190000002710424 思想:当前层各节点首元素不同,则各节点的剩余元素也不同:下一层节点交换范围为首元素以外的元素 全排列算法: vo ...
随机推荐
- 《你们都是魔鬼吗》第八次团队作业:第三天Alpha冲刺
<你们都是魔鬼吗>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 你们都是魔鬼吗 作业学习目标 完成最 ...
- ORA-12638: Credential retrieval failed 解决办法
ORA-12638 ORA-12638: Credential retrieval failed 身份证明检索失败 解决办法: 修改sqlnet.ora文件(位置:$ORACLE_HOME ...
- drf框架 - 序列化组件 | Serializer
序列化组件 知识点:Serializer(偏底层).ModelSerializer(重点).ListModelSerializer(辅助群改) 序列化与反序列化 序列化: 将对象序列化成字符串用户传输 ...
- mysql在group by分组后查询第二条/第三条乃至每组中任意一条数据
昨天老板让我查询项目中(众筹),没人刚发起感召后,前三笔钱的入账时间和金额,这把大哥整懵逼了,group by在某些方面是好使,但这次不能为我所用了,获取第一笔进账是简单,可以用group by 直接 ...
- shell脚本之 operater.sh 算术运算符;比较运算符;布尔运算符;逻辑与或非运算符;字符串运算符的使用
1.注意 格式不能变 尤其是变量和变量表达式之间的空格:[ 空格] .[ $a == $b ] 中间的空格严格不能变:否则报错 关系运算符 关系运算符只支持数字,不支持字符串,除非字符串的值是数字. ...
- 7中漂亮的纯css字体
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- C#题(子文章)(持续更新)
-----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) ...
- docker 随笔记录
.docker 固定网络ip地址,启动 Docker的时候,用 --network 参数,可以指定网络类型 eg:docker run -itd --name test1 --network brid ...
- vxlan和macvlan操作
vxlan: 192.168.1.112 ———— 192.168.1.108 —— 192.168.1.109192.168.1.112配置:docker run -d -p 8500:8500 - ...
- SpringBoot配置虚拟化路径用于图片的展示
前言:springboot默认可以访问resources下的static文件夹下的静态资源,我们一般将图片指定上传到static下的某个文件夹,例如images,开发阶段可以使用,但是当项目打成jar ...