c++怎么输入带有空格的字符串_杭电OJ 字符串处理类部分题解

一、前言

不知不觉已经大三上学期了,可作为一个计算机狗还没有考过CCF-CSP。因平时学习内容主要与安全方面相关,对于此类算法类的考核并没有太多的准备,故打算开始刷题复习算法和数据结构,准备CCF认证。在这里选择杭电的OJ作为准备此次CCF备考的练习题目。

虽然平时在学校里使用java语言较多,但考虑到语言运行速度和语法及编译器的熟练程度,以及网络上对于OJ题目的解法大多为c/c++编写,故此次打算报名c/c++作为编写语言,并使用CCF官方给出的devcpp作为编译环境。因此笔者在解题过程中可能会较多使用STL,并对其功能进行一些讲解。同时,笔者会尽量采用较为基础、常见的算法解题,可能会在额外时间和额外内存上无法做到完美,适合与算法初学者、基础者交流。

由于杭电OJ的题目较多,笔者会对其中部分题目进行个人分析和源代码的展示,并以题目类型进行分类。仅供学习和交流。

二、题解

2072、单词数

2072、单词数

此题的思路很简单,我们接收一个字符串,将其中的单词逐个提取出来;然后构造一个结构存储单词字符串,此结构初始时为空,每次将逐个取出的单词与此结构中的所有单词比较,如果此单词已经存储,继续提取下一个单词;如果还未存储,那么存储此单词在结构中,单词计数器加一。

此题有以下几个需要注意的地方:

1、输入字符串的接收。如果我们仅使用cin来输入字符串,那么遇到空格时,一次输入就会结束,无法接收完整的字符串。故在此题中需要使用以下:

getline(cin,string s),可以输入时接收空格在字符串中,遇到回车符结束一次输入。包含在<string>头文件中。

2、存储结构的选则。因为我们一开始不知道一句话会有多少个单词,也不知道单词数的上限,所以选择可变长结构vector来存储字符串。因此,我们在最后计算单词个数时,既可以使用自定义的计数器count,也可以直接使用函数vector.size()。

3、此题可能会出现在句子开头、结尾出现空格以及两个单词中间出现多个空格的情况,要在程序中予以考虑。

笔者源代码如下:

#include

-----------------------------------------待更新----------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python弹出框_selenium+python学习——弹出框

1、alert警告框 以百度搜索设置为例&#xff0c;在进行搜索设置后点击“保存设置”按钮&#xff0c;弹出alert对话框&#xff0c;如下图所示&#xff1a;实现代码&#xff1a; from selenium import webdriver import time as t from selenium.webdriver.support.select import…

mysql终端_MySQL之终端(Terminal)管理MySQL

前言&#xff1a;MySQL有很多的可视化管理工具&#xff0c;比如“mysql-workbench”和“sequel-pro-”。 现在我写MySQL的终端命令操作的文章&#xff0c;是想强化一下自己对于MySQL的理解&#xff0c;总会比使用图形化的理解透彻&#xff0c;因为我本来就比较喜欢写代码。同时…

python和node_Python和NodeJS绘图对比

在绘图方面&#xff0c;Python 比 NodeJS 好用&#xff0c;首先 Python 绘图库多&#xff0c;而且 API 强大而完善。 NodeJS 还是少点&#xff0c;一些库还没测就放弃了&#xff0c;需要 window 支持&#xff0c;而我需要在后端执行。 最近一直在搞地面雷达的可视化工作。在研究…

网页打开共享目录_你会做Excel文件目录吗?真的太太太太太简单了!

点击蓝字发送【2020】免费领 100图表模板&#xff01;本文作者&#xff1a;长小安本文编辑&#xff1a;尔冬哈喽大家好&#xff01;我是长小安&#xff0c;一名和秋叶一起学了多年 Excel、现在成功出道投稿的同学~让我来猜猜&#xff0c;你的电脑是不是也像我的一样&#xff0c…

centos7搜狐 mysql_基于centOS6.7搭建LAMP(httpd-2.4.18+mysql-5.5.47+php-5.6.16)环境

首先确保系统可以联网。设置IP地址以及虚拟机安装linux在此略过。本文采用centos6.7 64位minimal版、php5.6.16、httpd-2.4.18、mysql-5.5.47版搭建lamp环境。默认设置软件下载目录/usr/local/src&#xff0c;软件安装目录/app/local/下&#xff0c;安装顺序是apache→mysql→p…

c语言 如何创建adt_编程那些事儿:面向对象编程基石之数据抽象(ADT)

数据抽象本文接上一篇《编程那些事儿&#xff1a;为什么说抽象是面向对象编程的根基【1】&#xff1f;》,在了解了面向对象编程抽象的过程抽象后&#xff0c;下面我们继续聊一下数据抽象。数据抽象可以说面向对象编程最重要的基石。而数据抽象的结果就是数据类型(或简单的类型)…

mysql客户端版本太低_windows一机多装mysql,5.5低版本+5.8高版本

安装第一个mysql&#xff0c;压缩版或者安装版&#xff0c;过程省略&#xff0c;目录如下&#xff1a;运行中输入“regedit”进入后&#xff0c;找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL其实mysql启动的路径一般为&#xff1a;可执行文件的路径&…

java8 list 行转列_Java14 都来了,你还不会用 Java8吗?

Java 8 于2014年3月18日发布&#xff0c;并且成为主流的 Java&#xff0c;如今&#xff0c;虽然 Java 14 都已经发布了&#xff0c;但是 开发者和公司选择的版本依旧是经久不衰的 Java 8 版本&#xff0c;如果你还不了解这些新特性&#xff0c;是时候学习一下了。Java 8 更新的…

mysql主键用完了怎么办_MySQL 自增 ID 用完了怎么办?

MySQL 自增 ID 用完了怎么办&#xff1f;在MySQL中有很多类型的自增ID&#xff0c;每个自增ID都设置了初始值&#xff0c;然后按照一定的步长增加&#xff0c;只要定义了字节长度&#xff0c;那么就会有上限&#xff0c;如果达到上限再次添加&#xff0c;则会报主键冲突错误&am…

python怎么引用多行输入_python调用shell返回两行第二行需要输入密码怎么办?import os os.syst...

没有办法交互&#xff0c;用ftplib吧 # 例&#xff1a;FTP编程 from ftplib import FTP ftp FTP() timeout 30 port 21 ftp.connect(192.168.1.188,port,timeout) # 连接FTP服务器 ftp.login(UserName,888888) # 登录 print ftp.getwelcome() # 获得欢迎信息 ftp.cwd(file/t…

java rsa_java中RSA加解密的实现

public static void main(String[] args) throws Exception {// TODO Auto-generated method stubHashMap map RSAUtils.getKeys();//生成公钥和私钥RSAPublicKey publicKey (RSAPublicKey) map.get("public");RSAPrivateKey privateKey (RSAPrivateKey) map.get(…

python字典统计_python字典计数

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;字典?thcollections.counter 计数器? image.png找不到键的时候会调用miss方法如果键不是字符串&#xff0c…

java相册_精致小巧的java相册制作方法

本文实例为大家分享了java相册制作方法&#xff0c;供大家参考&#xff0c;具体内容如下注&#xff1a;1)html上的图片是静态指定的。当更新了新的图片时必须手工更新。所以使用Servlet读取本地images中的所有图片&#xff0c;动态显示给用户。2)如果存在中文名的图片&#xff…

python时间差转换成天数_Python实现计算两个时间之间相差天数的方法

本文实例讲述了Python实现计算两个时间之间相差天数的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a; #-*- encoding:UTF-8 -*- from datetime import date import time nowtime date.today() def convertstringtodate(stringtime): "把字符串类型转换为da…

java break的用法_Java基础break、continue语句的用法

break适用范围&#xff1a;只能用于switch或者是循环语句中。当然可以用于增强for循环。break作用&#xff1a;1. break用于switch语句的作用是结束一个switch语句。2. break用于循环语句中的作用是结束当前所在的循环语句。break和continue区别:break是结束循环&#xff0c;进…

利用python画分形图_使用 Python 绘制 Mandelbrot 分形图

以前收集的关于Mandelbrot分形图的Python脚本&#xff0c;Mandelbrot集合的图像因它洛可可式繁复卷曲华丽的风格而受到大众的欣赏和赞叹&#xff0c;与其他分形图案一起&#xff0c;是许多艺术家和设计师的灵感来源。 是由于今天个人电脑计算能力的强大&#xff0c;才有可能让我…

java ucs2转utf8_Windows下Unicode(UCS2),UTF8,GBK(GB2312)互转

Windows下提供了两个编码转换函数&#xff1a;WideCharToMultiByte和MultiByteToWideChar。用它们可实现Unicode(UCS2)&#xff0c;UTF8&#xff0c;GBK(GB2312)互转。这两个函数的原型是&#xff1a;intWINAPIMultiByteToWideChar(__in UINT CodePage,__in DWORD dwFlags,__in…

彻底搞懂 python 中文乱码问题_彻底搞懂 Python 编码 - sylan215的软件测试技术学习 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

因为中文的特殊编码&#xff0c;导致 Python2 和 Python3 使用过程中的各种编码问题&#xff0c;如果不清楚其中的关联关系&#xff0c;那么这就一直是个大坑&#xff0c;不是懵逼就还是懵逼&#xff0c;所以就目前碰到的情况彻底梳理下 Python2 和 Python3 中编码的关系和区别…

java sound api_Java Sound API

Java Sound API是javaSE平台提供底层的(low-level)处理声音接口。例外&#xff0c;java也提供了简单的实用的高层媒体接口(higher-level) &#xff0d; JMF(Java Media Framework)。Java Sound API 将需要处理的数字音频分为&#xff1a;simpled-audio和midi,分别提供Package来…

取pi的前8位的解压密码_两种方式实现取16位变量的高低8位, 不严谨对比

程序如下&#xff0c;第一种方式是强制指针转换&#xff0c;再取结构体成员&#xff1b;第二种方式是简单的移位。前面这种写法得考虑大小端序, 后者不用管.#include <stdio.h>#define hi8(x) ((( struct { unsigned char l; unsigned char h; } *)(&x))->h) …