杭电oj HDOJ 2072 单词数
杭电oj HDOJ 2072 单词数
Problem Description
lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
解题思路
把读取到的字符串以“空格”隔开,统计不同单词的数量。
本人的C++解决方案
#include <iostream>
#include <string>
#include <set>
#include <sstream>
using namespace std;int main()
{string sen, word;stringstream ss;set<string> s;while (getline(cin, sen)) {if (sen == "#") {break;}ss<<sen;// 把读取到的字符串以“空格”隔开while (ss>>word) {s.insert(word);}// 统计不同单词的数量cout<<s.size()<<endl;s.clear();// 清空流中错误标记,以免下次使用输入错误信息ss.clear();}return 0;
}
本题涉及到的关于“处理字符串”的内容:(之前在2054题中说过的,这里就不再说了!)
字符串的读取:
cin
与getline
我们最熟悉的读取方法就是cin
,但是对于有“空格”的字符串,cin
无法读取到完整的一个字符串,而是读到第一个“空格”就结束了。getline(cin, str)
则可以读取完整的字符串,以“回车”为结束标识(不读取“回车”)。
把字符串分割成单词:
stringstream
类
对于字符串的输入和输出,C++引入了istringstream
、ostringstream
、stringstream
三个类,使用时必须引入头文件#include <sstream>
。
istringstream
类用于执行C++风格的串流的输入操作。
ostringstream
类用于执行C++风格的串流的输出操作。
stringstream
类同时可以支持C++风格的串流的输入输出操作。
stringstream << string
:向流中传值
stringstream >> string
:向字符串中写值
stringstream.clear()
:清空流中的错误标记,这里并不是“清空流”。
用stringstream
创建字符串流时,会把“空格”作为流中字符串的内部分解,刚好可以利用这种特性分割出单词。
统计不同单词的数量:
set
容器
set
容器是C++中的一种关联容器,其特点是:容器存储同一数据类型的数据、容器中每个元素的值都不同(这就是本题使用它的原因)、容器中的数据会自动排序。
set.clear()
:清除容器中的所有元素。
set.size()
:返回容器中的元素个数。
set.insert()
:向容器中插入元素。
上述相关内容还有许多其他用法,请读者自行寻找查阅。
代码通过HDOJ平台运行通过检查,如发现错误,欢迎指出和纠正,谢谢!
杭电oj HDOJ 2072 单词数相关推荐
- 杭电oj HDOJ 1018 Big Number(斯特林公式求大数阶乘的位数)
杭电oj HDOJ 1018 Big Number 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1018 Problem Description In ...
- HDOJ 2072 单词数
Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. ...
- 杭电OJ(HDOJ)入门题目列表
杭电OJ链接: http://acm.hdu.edu.cn/ 注册与使用指南: https://blog.csdn.net/qq_38769551/article/details/101510000 ...
- 杭电OJ,已重新开放!HDOJ
前几天我们介绍了网络上有很多可以练习上机考试刷题的网站,叫做OJ(Online Judge).还提到了一些学校已经公布了复试上机的说明,可以提前练习. 已经有211大学发布计算机专业,研究生复试上机考 ...
- c++ substr截取中间部分字符串_杭电OJ 字符串处理类部分题解
一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...
- c++怎么输入带有空格的字符串_杭电OJ 字符串处理类部分题解
一.前言 不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP.因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证 ...
- HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)
今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的 题号 题名 题号 题名 2000 ASCII码排序 2 ...
- 杭电OJ分类题目(4)-Graph
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(4) HDU Graph Theory - U ...
- 杭电OJ分类题目(3)
原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(3) HDU Computational Ge ...
最新文章
- Android 实现 调用 WPS Office手机版接口
- amh支持java吗_AMH 6.0 发布,国内领先的云主机面板
- 深度学习核心技术精讲100篇(二十七)-如何利用NLP技术对ASR的query文本进行预处理纠错?
- java内部类的作用
- python一对一_Python - Django - ORM 一对一表结构
- 关于Mybatis的一些问题
- 骁龙888打开“新象限” ,专业相机和游戏机直呼不讲武德
- idea配置tomcat热部署
- 金庸:为什么历史上没有一个国家能成功吞并中国?
- 搜索中文与外文数据库中的综述类文献
- SpringBoot整合Shiro搭建登录注册认证授权权限项目模板
- 刚刚!国产大数据基础软件第一股星环科技成功上市,开盘大涨超52%
- 傻子也能看懂的迪杰斯特拉算法(转)
- python pickle and json
- 【AGC004E】Salvage Robots【动态规划dp】
- 【GameObject 类】 (四)SetActive 显示 / 隐藏游戏对象
- 550 Recipient unknown
- C2B的未来:大数据定制
- FMEA失效模式各独立风险需严守【S/O/D】标准
- win10安装包管理工具Chocolatey
热门文章
- 微信小程序按钮添加背景
- 微信小程序 - “本地资源图片无法通过WXSS 获取,可以使用网络图片,或者 base64,或者使用标签” 解决
- 战列舰机械计算机,问个事,二战时期的战列舰可以装备垂直稳定仪么?
- 英语构词法软件wordformation发布全新1.0版本
- 微信气泡主题设置_微信气泡主题华为手机要怎么弄 华为手机微信气泡主题设置方法介绍...
- EXCEL数据分析——上海餐饮数据分析
- 学习记录, 带你玩转Pyppeteer (全干货)
- cve查询_CVE年满21岁:如何实现这一里程碑
- AI 编程助手 亚马逊CodeWhisperer使用简介
- 百分六用计算机该怎么算,24975000的百分之五是多少,用计算器怎么算?