PAT乙级 1039 到底买不买
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。
为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。
图 1
输入格式:
每个输入包含 1 个测试用例。每个测试用例分别在 2 行中先后给出摊主的珠串和小红想做的珠串,两串都不超过 1000 个珠子。
输出格式:
如果可以买,则在一行中输出 Yes
以及有多少多余的珠子;如果不可以买,则在一行中输出 No
以及缺了多少珠子。其间以 1 个空格分隔。
输入样例 1:
ppRYYGrrYBR2258
YrR8RrY
结尾无空行
输出样例 1:
Yes 8
结尾无空行
输入样例 2:
ppRYYGrrYB225
YrR8RrY
结尾无空行
输出样例 2:
No 2
结尾无空行
由于是二刷,所以我的思路和柳婼的思路是相同的,看她的答案思路写的就很清楚了。只是想提一句“细微之处最见功力”,尤其是输出Yes的那里,计算多多少个珠子,我用的是遍历整个数组加和每个值,但是她却直接用两个字符串长度相减就得出来了。想了一下,恍然大悟,确实如此,这个时间开销可比我的少太多了!大致的思路也许大家都差不多,但是这也许就是挖掘题目信息的功力以及千锤百炼后的能力吧。
附我没优化过的代码:
#include<iostream>
#include<iomanip>
#include<vector>
#include<set>
#include<list>
#include<deque>
#include<stack>
#include<unordered_map>
#include<cctype>
#include<map>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;int ball[200];
int main()
{string s,ss;cin >> s>>ss;int flag = 0, cnt = 0;for (int i = 0; i < s.length(); i++)ball[s[i] - '0']++;for (int i = 0; i < ss.length(); i++){if (ball[ss[i] - '0'] != 0)ball[ss[i] - '0']--;else{flag = 1;cnt++;}}if (flag == 1)cout << "No " << cnt;else{cnt = 0;for (int i = 0; i < 200; i++)cnt += ball[i];cout << "Yes " << cnt;}return 0;
}
PAT乙级 1039 到底买不买相关推荐
- PAT乙级 1039 到底买不买 (20分)
1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...
- PAT 乙级1039 到底买不买(C语言)
1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...
- [PAT乙级]1039 到底买不买
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- PAT 乙级 1039. 到底买不买(20)Java版
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- C++/Python PAT 乙级 1039 到底买不买(20)
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- pat 乙级 1039 到底买不买 (20分)(C语言)
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- PAT(乙级) 1039 到底买不买
题目 题目链接 思路 用map记录每个字符各有多少个,然后依次查找有没有想要的字符,分为两种情况:1.找到了,要看数量够不够:2,未找到:用一个变量存储不够的字符数即可 代码 #include < ...
- C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)
1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子 ...
- PAT乙级题目索引(题目+解析+AC代码)
题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...
最新文章
- IEEE:2021年的机遇、挑战以及关键的科技趋势
- mysql 索引类型案例_Mysql索引类型与基本用法实例分析
- 【计算机网络】电路交换网络中,每条电路独占其经过的物理链路?
- asp.net安全身份验证
- PI控制器概念 笔记
- c语言so文件反编译,apk so文件反编译教程
- HTTPS那些事(二)SSL证书
- 我的团长我的团第二十四集
- [计算机组成原理]定点数运算及溢出检测
- .NET pfx文件解析私钥和公钥
- 神棍传奇(cocos-jsV3.6)
- php 拼接html字符串,php截断带html字符串文章内容的方法
- 工作压力不容忽视——网易公司宣布首席执行官孙德棣18日辞世
- win10网络不出现计算机列表,win10笔记本WiFi网络列表不显示内容的解决方法
- 阿里云5天学习感悟与案例分享
- linux 嵌入式汇编 adc,嵌入式Linux ARM汇编(四)——ARM汇编程序设计
- Python解释器的选择,初学者必看
- Matlab如何在文件中写入空格和换行
- 纯C语言日志类库 Zlog
- Linux下批量重命名文件