1204. 错误票据

news/2025/2/22 0:17:50/

题目:

1204. 错误票据 - AcWing题库

思路: 

将输入的数据存入数组,从小到大排序后遍历,若 (a[i] == a[i - 1])res1 = a[i]--->重号;若(a[i] - a[i - 1] >= 2)res2 = a[i] - 1--->断号。

难点:题目只告诉我们输入几行,且并不知道每行有多少个,因此无法直接将输入数据存入定义好的连续数组。(cin无法处理换行符)

1.针对上述情况,我们可以先用getline(cin,line)将整行数据(包括空格)先存入字符串(string)变量中。再定义字符串流stringstream对象ssin,并将前面读取的line传递给它。

这样,你可以使用ssin来解析和操作字符串中的数据。接下来的循环while (ssin >> a[n])n++;在每次循环中从ssin中读取一个整数,并保存到数组a中。(字符串中的空格也就不会进入数组a[])

代码:

 

#include<iostream>
#include<sstream>//字符串流头文件
#include<algorithm>
#include<string>
using namespace std;
int n;//表示ID号码数量
const int N = 10010;
int a[N];
int main()
{int cnt;//表示行数cin >> cnt;string line;getline(cin, line);//忽略掉第一行的回车while (cnt--) {getline(cin, line);//读入一行数据存入linestringstream ssin(line);//定义一个字符串流对象ssin,初始化为linewhile (ssin >> a[n])n++;//这里的ssin会将其中的整数传出,且不会将空格传入数组a[]中}sort(a, a + n);int res1, res2;for (int i = 1; i < n; i++)if (a[i] == a[i - 1])res1 = a[i];//重号else if (a[i] - a[i - 1] >= 2)res2 = a[i] - 1;//断号cout << res2 << " " << res1;}

特别注意:

使用getline读入一整行时,如果之前写过cin,由于cin中有默认换行,getline会将其也读入,使得字符串类型的变量line的第一个元素是空的。因此,我们需要在读入之前先getline(cin, line)--->忽略掉第一行的回车。(不要问为什么这样写,c++爸爸规定滴)


http://www.ppmy.cn/news/1212602.html

相关文章

FreeSWITCH 卡通道(通道死锁)完美解决

之前已经写过2篇博客分析这个问题 https://blog.csdn.net/iyaosan/article/details/132115154 https://smartivr.blog.csdn.net/article/details/132093913 最近一个客户使用顶顶通空号识别 &#xff0c;对接方式为 vos1->freeswitch(内含空号识别模块)->vos2 每天晚上…

游戏平台采集数据

首先&#xff0c;你需要在你的项目中添加Kotlin的网络库&#xff0c;例如OkHttp。你可以在你的build.gradle文件中添加以下依赖&#xff1a; dependencies {implementation com.squareup.okhttp3:okhttp:4.9.0 }然后&#xff0c;你可以使用以下代码来创建一个基本的网络爬虫&a…

Flutter实践一:package组织

1.架构概览 为了降低Flutter工程里lib的复杂度&#xff0c;应尽量拆分一些代码成为独立的package。如图&#xff1a; 我们将通用的组件、领域模型、API、features、存储、repository等抽取成了单独的package。这时lib只剩下多国语言、基本的页面、路由等代码了&#xff1a; 这…

HCIE-Rainbow迁移工具

Rainbow迁移工具 Rainbow迁移工具支持p2v&#xff08;物理机到虚拟机的迁移&#xff09; v2v&#xff08;虚拟机到虚拟机的迁移&#xff09; Rainbow迁移是整机迁移&#xff0c;不会单独迁移上层的业务&#xff0c;也不会单独迁移数据&#xff0c;只会迁移整个虚拟机或者磁盘。…

macOS使用conda初体会

最近在扫盲测序的一些知识 其中需要安装一些软件进行练习&#xff0c;如质控的fastqc&#xff0c;然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习 1.安装miniconda 由于我的电脑之前已经安装了brew&#xff0c;所以我就直接用brew安装了 brew install …

计算机组成原理之处理器(流水线)

引言 为什么不采用单周期实现,硬件比较简单&#xff1f; 主要是因为效率太低&#xff0c;处理器中最长的路径&#xff08;一般是ld指令)决定了时钟周期 流水线概述 流水线是一种能使多条指令重叠执行的技术。 流水线更快的原因是所有的工作都在并行执行&#xff0c;所以单位…

recycleView(三)动态修改背景色

效果图 1.关键代码 1. // 定义一个变量来记录滑动的距离var scrollDistance 0// 在RecycleView的滑动监听器中更新滑动的距离binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {override fun onScrolled(recyclerView: RecyclerView, …

【K8s集群离线安装-kubeadm】

1、kubeadm概述 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令快速完成一个kubernetes集群的部署。 2、环境准备 2.1 软件环境 软件版本操作系统CentOS 7Docker19.03.13K8s1.23 2.2 服务器 最小硬件配置&#xff1a;2核CPU、2G内存…