首页 > 其他分享 >一道硬用vector写的题,增强记忆

一道硬用vector写的题,增强记忆

时间:2023-05-10 20:44:32浏览次数:36  
标签:cout int 校友 身份证号 back 硬用 ++ vector 记忆

输入格式:

输入在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一位校友的身份证号(18 位由数字和大写字母X组成的字符串)。题目保证身份证号不重复。

随后给出前来参加校庆的所有人士的信息:首先是一个不超过 105 的正整数 M,随后 M 行,每行给出一位人士的身份证号。题目保证身份证号不重复。

输出格式:

首先在第一行输出参加校庆的校友的人数。然后在第二行输出最年长的校友的身份证号 —— 注意身份证第 7-14 位给出的是 yyyymmdd 格式的生日。如果没有校友来,则在第二行输出最年长的来宾的身份证号。题目保证这样的校友或来宾必是唯一的。

输入样例:

5
372928196906118710
610481197806202213
440684198612150417
13072819571002001X
150702193604190912
6
530125197901260019
150702193604190912
220221196701020034
610481197806202213
440684198612150417
370205198709275042
 

输出样例:

3
150702193604190912
  代码长度限制 16 KB 时间限制 800 ms 内存限制 64 MB

#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
int main()
{
vector<string>v1;
int a, b;
string m;
cin >> a;
int count = 0;
for (int i = 0; i < a; i++)
{
cin >> m;
v1.push_back(m);
}
vector<string>v2;
vector<string>v3;
cin >> b;
for (int i = 0; i < b; i++)
{
cin >> m;
v2.push_back(m);
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
if ((v1[i]).compare(v2.at(j)) == 0)
{
v3.push_back(v1[i].substr(6, 8));//返回数组从6索引开始共8位
count++;
}
}
}
if (count == 0)
{
vector<string>v5;
for (int i = 0; i < b; i++)
{
v5.push_back(v2[i].substr(6, 8));
}
sort(v5.begin(), v5.end()); //algorithm中的STL容器一种由小到大的排序
for (int i = 0; i < b; i++)
{
if ((v2[i].substr(6, 8)).compare(v5[0]) == 0)
{
cout << count << endl;
cout << v2[i];
break;
}
}

}
else
{
cout << count << endl;
sort(v3.begin(), v3.end());
for (int i = 0; i < a; i++)
{
if ((v1[i].substr(6, 8)).compare(v3[0]) == 0)
{
cout << v1[i];
break;
}
}
}
return 0;
}//结果正确,运行超时,主要是为了熟悉vector以后要看一下algorithm。里面有好用的算法,还有string中的方法。

标签:cout,int,校友,身份证号,back,硬用,++,vector,记忆
From: https://www.cnblogs.com/zhaoqianwan/p/17389255.html

相关文章

  • vector容器(下)
    五、vector的插入和删除1、功能描述:对vector容器进行插入、删除操作;2、函数原型:(1)push_back(ele);//尾部插入元素ele(2)pop_back(ele); //删除最后一个元素(3)insert(const_iteratorops,ele);//迭代器指向位置pos插入元素ele(4)insert(const_iteratorpos,intcount,ele);//迭代器指向位置......
  • 每日打卡c++中vector容器使用
    首先头文件#include<vector>for_each一种算法需要头文件#include<algorithm>标准算法头文件vector<int>::iterator迭代器,可以当指针用。基本格式vector<数据类型>名称;数据类型可以是类。例子#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;cla......
  • C#使用词嵌入向量与向量数据库为大语言模型(LLM)赋能长期记忆实现私域问答机器人落地
     本文将探讨如何使用c#开发基于大语言模型的私域聊天机器人落地。大语言模型(LargeLanguageModel,LLM这里主要以chatgpt为代表的的文本生成式人工智能)是一种利用深度学习方法训练的能够生成人类语言的模型。这种模型可以处理大量的文本数据,并学习从中获得的模式,以预测在给定的......
  • 删除 vector 中引用指向的元素,会有什么结果?
    #include<iostream>#include<vector>intmain(){std::vector<int>arr={1,2,3};constint&a=arr[0];std::cout<<a<<'\n';arr.erase(arr.begin());std::cout<<a<<�......
  • C++容器(vector、deque、list、map)
    (1)vector:将元素置于一个动态数组中,可以随机存储元素(也就是用索引直接存取)。数组尾部添加或删除元素非常迅速。但在中部或头部就比较费时。*代码演示:*取:at在下标越界时会抛出异常,我们能捕获异常进行处理;而[]下标越界会让程序直接终止;构造函数:cbegin,cend,crbegin,cren......
  • C++用return{}来返回空的Vector数组
    本人在刷Leecode题目的时候发现以下代码classSolution{public:std::unordered_map<int,int>map;for(inti=0;i<nums.size();i++){//遍历当前元素,并在map中寻找是否有匹配的keyautoiter=map.find(target-nums[i]......
  • Vector日志收集
    .=parse_grok!(string!(.message),"%{TIMESTAMP_ISO8601:timestamp}%{GREEDYDATA:message}")https://open.larksuite.com/document/ukTMukTMukTM/uczM3QjL3MzN04yNzcDN?lang=zh-CN......
  • 记忆化搜索 P1028 数的计算
    P1028[NOIP2001普及组]数的计算-洛谷|计算机科学教育新生态(luogu.com.cn)一开始是想暴力搜索的,也就是枚举比n/2小的数,但是只过了5个点,其他点都TLE然后就开始想有没有优化方法以6为例子6/2=3,那么以6为首的长度为2的序列就有61,62,63,也就是所有小于等于3的数的个数接下......
  • 专访Evernote CEO Phil Libin:Evernote想留住你的记忆而不是你的Money
    在伦敦举行的 LeWeb大会以后,Evernote CEO PhilLibin 提到,Evernote现在的用户数量已从五月份的2500万上升到六月份的3400万,付费用户虽然比率仍旧很小,但也在快速增长,从五月份的100万增长到六月份的140万。就Evernote今后的发展计划,著名科技博客TechCrunch编辑INGRIDLUNDEN对Ev......
  • 时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......