牛客网_PAT乙级_1028到底买不买(20)【用iterator迭代器,对两个vectorchar比较,删除相同元素】
题目描述
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。
为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;ppRYYGrrYB225不能买,因为没有黑色珠子,并且少了一颗红色的珠子。
输入描述:
每个输入包含1个测试用例。每个测试用例分别在2行中先后给出摊主的珠串和小红想做的珠串,两串都不超过1000个珠子。
输出描述:
如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。
输入例子:
ppRYYGrrYBR2258
YrR8RrY
输出例子:
Yes 8
代码
疑问:注释部分的代码思路可以吗?
先吸收两个字符串,再一个一个push进入vector中
答:可以。见代码块二
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{/*char longstr[1000] = { 0 };char shortstr[1000] = { 0 };vector<char>longchar;vector<char>shortchar;scanf("%s%s", longstr, shortstr);int lenlong = strlen(longstr);int lenshort = strlen(shortstr);int i;for (i = 0; i < lenlong; i++){longchar.push_back(longstr[i]);}for (i = 0; i < lenshort; i++){shortchar.push_back(shortstr[i]);}*/vector <char> longchar;vector <char> shortchar;char keyBoard;//输入longchar数组,用回车结束while (keyBoard = getchar()){if (keyBoard == '\n')break;longchar.push_back(keyBoard);}//输入shortchar数组,用回车结束while (keyBoard = getchar()){if (keyBoard == '\n')break;shortchar.push_back(keyBoard);}//shortchar,longchar数组对比,删除longchar数组中与shortchar数组相同的元素 vector<char>::iterator iter1 = shortchar.begin();//短vector<char>::iterator iter2 = longchar.begin();//长for (; iter1 != shortchar.end(); ){iter2 = find(longchar.begin(), longchar.end(), *iter1);if (iter2 != longchar.end())//如果找到了{iter1 = shortchar.erase(iter1);//删除短iter2 = longchar.erase(iter2);//删除长}else{iter1++;}}if (shortchar.size() != 0)//如果short有剩余{cout << "No " << shortchar.size();}else if (shortchar.size() == 0){cout << "Yes " << longchar.size();}system("pause");
}
代码块2
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{char longstr[1000] = { 0 };char shortstr[1000] = { 0 };vector<char>longchar;vector<char>shortchar;scanf("%s%s", longstr, shortstr);int lenlong = strlen(longstr);int lenshort = strlen(shortstr);int i;for (i = 0; i < lenlong; i++){longchar.push_back(longstr[i]);}for (i = 0; i < lenshort; i++){shortchar.push_back(shortstr[i]);}//shortchar,longchar数组对比,删除longchar数组中与shortchar数组相同的元素 vector<char>::iterator iter1 = shortchar.begin();//短vector<char>::iterator iter2 = longchar.begin();//长for (; iter1 != shortchar.end(); ){iter2 = find(longchar.begin(), longchar.end(), *iter1);if (iter2 != longchar.end())//如果找到了{iter1 = shortchar.erase(iter1);//删除短iter2 = longchar.erase(iter2);//删除长}else{iter1++;}}if (shortchar.size() != 0)//如果short有剩余{cout << "No " << shortchar.size();}else if (shortchar.size() == 0){cout << "Yes " << longchar.size();}system("pause");
}
牛客网_PAT乙级_1028到底买不买(20)【用iterator迭代器,对两个vectorchar比较,删除相同元素】相关推荐
- 牛客网_PAT乙级_1019. 数字黑洞 (20)
总结 注意!! 想要在函数中结束程序,一定不要用system("pause");,因为这样只是让程序暂停,结果就是运行时间超时,无法通过所有的测试用例. 那么,C++ 程序中什么函 ...
- 牛客网_PAT乙级_1022挖掘机技术哪家强(20)【class vector sort排序、删除重复元素】
题目描述 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入描述: 输入在第1行给出不超过105的正整数N,即参赛人数.随后N行,每 ...
- 牛客网_PAT乙级_1010月饼 (25)
因为黑框框里放不下,(非官网)测试用例用txt导入: 这题有一个陷阱,官网上说给非0数,测试用例却出现了0,0吨的月饼能卖507元,而且这样的月饼要最先卖,因为它的price是inf,卖掉0吨净赚50 ...
- 牛客网_PAT乙级_1029有几个PAT(25)【输入字符串并strlen计算长度】
题目描述 字符串APPAPT中包含了两个单词"PAT",其中第一个PAT是第2位§,第4位(A),第6位(T):第二个PAT是第3位§,第4位(A),第6位(T). 现给定字符串, ...
- 牛客网_PAT乙级_1027在霍格沃茨找零钱(20)
题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可, ...
- 牛客网_PAT乙级_1025插入与归并(25)
题目描述 根据维基百科的定义: 插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列.每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置.如此迭代直到全部元素有序. 归并排序 ...
- 牛客网_PAT乙级_1026跟奥巴马一起编程(15)
题目描述 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014年底,为庆祝"计算 机科学教育周"正式启动,奥巴马编写了很简 ...
- 牛客网_PAT乙级_10234有理数四则运算(20)【通过5/7:格式错误】
题目描述 本题要求编写程序,计算2个有理数的和.差.积.商. 输入描述: 输入在一行中按照"a1/b1 a2/b2"的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整 ...
- 牛客网_PAT乙级_1023旧键盘打字(20)【别人代码里用到的hash是啥】
心得 关于如何找到个别测试点通不过的原因: 复制别人的正确的代码,和自己的代码运行相同的测试用例,比较两者之间的区别 ??别人代码里用到的hash是啥?? 题目描述 旧键盘上坏了几个键,于是在敲一段文 ...
最新文章
- sl中几个简单变量的获取
- git报错:Pull is not possible because you have unmerged files解决方法
- 推荐系统个人理解(理论部分)
- 优秀的网工都会NAT
- 《NLTK基础教程——用NLTK和Python库构建机器学习应用》——2.3 语句分离器
- php 剪贴板,之Windows中的剪贴板
- java hh mm ss_【Java基础】比较时间大小(以HH:mm:ss格式为例)
- Android单元测试研究与实践
- securecrt 乱码_SecureCRT远程连接Linux,配置端点和字节码
- 开源音乐播放器_如何选择开源音乐播放器
- python递归函数入门教程_Python递归函数
- 7. 生信技能树——TCGA癌症数据2
- Android——Binder机制
- ppt画图画不下——调整ppt页面的大小
- GPS坐标系转换(标准坐标系WGS84转GCJ-02火星坐标系)
- 普渡大学计算机图形,普渡大学计算机图形学技术研究生语言及申请要求-费用-课程设置...
- matlab如何打开dcm_Matlab绘图简明手册
- 天天生鲜项目——用户信息页
- 高效偏振无关透射光栅的分析与设计
- JAVA安全基础知识
热门文章
- a律13折线pcm编码例题_a律13折线pcm编码例题
- 机器学习-关联之FP-Growth算法原理及实战
- 工资管理信息系统java_java+sql server,工资管理信息系统,源程序+数据库+报告
- 干货 | Elasticsearch开发人员最佳实战指南
- 解析腾讯云音视频通信三大核心网络技术实战与创新
- 【音频技术:逼近人耳极限】
- Spotify是如何调整CDN服务来实现闪电般的快速流媒体体验
- 第三章 Spark运行模式及原理
- Java基础之String,StringBuilder,StringBuffer三者的区别
- 理解音视频 PTS 和 DTS