小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。

为方便起见,我们用[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 到底买不买相关推荐

  1. PAT乙级 1039 到底买不买 (20分)

    1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...

  2. PAT 乙级1039 到底买不买(C语言)

    1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...

  3. [PAT乙级]1039 到底买不买

    小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...

  4. PAT 乙级 1039. 到底买不买(20)Java版

    小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...

  5. C++/Python PAT 乙级 1039 到底买不买(20)

    小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...

  6. pat 乙级 1039 到底买不买 (20分)(C语言)

    小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...

  7. PAT(乙级) 1039 到底买不买

    题目 题目链接 思路 用map记录每个字符各有多少个,然后依次查找有没有想要的字符,分为两种情况:1.找到了,要看数量够不够:2,未找到:用一个变量存储不够的字符数即可 代码 #include < ...

  8. C++学习之路 | PTA乙级—— 1039 到底买不买 (20 分)(精简)

    1039 到底买不买 (20 分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子 ...

  9. PAT乙级题目索引(题目+解析+AC代码)

    题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 ...

最新文章

  1. IEEE:2021年的机遇、挑战以及关键的科技趋势
  2. mysql 索引类型案例_Mysql索引类型与基本用法实例分析
  3. 【计算机网络】电路交换网络中,每条电路独占其经过的物理链路?
  4. asp.net安全身份验证
  5. PI控制器概念 笔记
  6. c语言so文件反编译,apk so文件反编译教程
  7. HTTPS那些事(二)SSL证书
  8. 我的团长我的团第二十四集
  9. [计算机组成原理]定点数运算及溢出检测
  10. .NET pfx文件解析私钥和公钥
  11. 神棍传奇(cocos-jsV3.6)
  12. php 拼接html字符串,php截断带html字符串文章内容的方法
  13. 工作压力不容忽视——网易公司宣布首席执行官孙德棣18日辞世
  14. win10网络不出现计算机列表,win10笔记本WiFi网络列表不显示内容的解决方法
  15. 阿里云5天学习感悟与案例分享
  16. linux 嵌入式汇编 adc,嵌入式Linux ARM汇编(四)——ARM汇编程序设计
  17. Python解释器的选择,初学者必看
  18. Matlab如何在文件中写入空格和换行
  19. 纯C语言日志类库 Zlog
  20. Linux下批量重命名文件

热门文章

  1. nginx正常启动,ip直接访问失败问题
  2. VMware——虚拟机的安装
  3. [CQOI2017]小Q的棋盘
  4. iOS8上本地通知接收不到的问题
  5. 解决outlook无法启动
  6. arm linux演艺(三)
  7. java中的多线程来看一看基础了
  8. python3  循环输出当前时间。
  9. CC3200底板测试-烧写CC3200-LAUNCHXL
  10. 每天一个linux命令-curl命令