1039 到底买不买 (20分)
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。
为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串可以买,因为包含了全部她想要的珠子,还多了8颗不需要的珠子;第2串不能买,因为没有黑色珠子,并且少了一颗红色的珠子。

输入格式:
每个输入包含 1 个测试用例。每个测试用例分别在 2 行中先后给出摊主的珠串和小红想做的珠串,两串都不超过 1000 个珠子。

输出格式:
如果可以买,则在一行中输出 Yes 以及有多少多余的珠子;如果不可以买,则在一行中输出 No 以及缺了多少珠子。其间以 1 个空格分隔。

输入样例 1:

ppRYYGrrYBR2258
YrR8RrY

输出样例 1:

Yes 8

输入样例 2:

ppRYYGrrYB225
YrR8RrY

输出样例 2:

No 2

源程序:

#include<stdio.h>
#include<string.h>int main()
{char str1[1001],str2[1001];scanf("%s",str1);scanf("%s",str2);int len1,len2;len1=strlen(str1);len2=strlen(str2);int i;int a[62]={0},b[62]={0};for(i=0;i<len1;i++){/* 哈希法,0~9,0的ascll码值为45,A~Z,A的ascll码值为65,a~z,a的ascll码值为97;a[0]~a[9]存储1~9,a[10]~a[35]存储A~Z,a[36]~a[61]存储a~z.  */if(str1[i]>='0'&&str1[i]<='9')a[str1[i]-48]++;else if(str1[i]>='A'&&str1[i]<='Z')a[str1[i]-65+10]++;elsea[str1[i]-97+36]++;}for(i=0;i<len2;i++){if(str2[i]>='0'&&str2[i]<='9')b[str2[i]-48]++;else if(str2[i]>='A'&&str2[i]<='Z')b[str2[i]-65+10]++;elseb[str2[i]-97+36]++;}int sum=0;for(i=0;i<62;i++){if(a[i]<b[i])sum+=(b[i]-a[i]);}if(!sum)printf("Yes %d",len1-len2);elseprintf("No %d",sum);return 0;
}

算法思路:
采用哈希法,统计摊主的和想做的珠串中各珠子的数量,两者比较,得出摊主珠子是否齐全,输出结果。

PAT 乙级1039 到底买不买(C语言)相关推荐

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

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

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

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

  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 乙级1032 挖掘机技术哪家强(C语言,含判断点解析)

    1032 挖掘机技术哪家强 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 10^5的正整数 ...

最新文章

  1. 1.2.2一个数可以有多少种用连续素数之和表示
  2. HTML5实例教程:OL标签的start属性和reversed属性
  3. 关闭Visual Studio中的自动代码分析
  4. 前后台分离使用cookie判断用户状态以及传递参数
  5. (常用API)正则表达式匹配练习
  6. python编程基础_月隐学python第2课
  7. windows系统磁盘使用记录(自用)
  8. WaitForSingleObject的使用
  9. Graph DataBase介绍
  10. 圆锥形怎么画_如何画圆锥体的展开图?
  11. 三层交换机实现不同vlan间通信
  12. python编程入门之二:数据类型与运算
  13. net_speeder发双倍包加速
  14. 对random.seed()函数的理解
  15. 数智经济转型下如何抢占文创发展新机遇?中国移动咪咕聚焦新一代年轻人需求
  16. IEEE754浮点数标准
  17. macbook黑屏_MacBook维修 苹果笔记本电脑进水不开机
  18. 兄弟们,我又回来了,干货太多让你们久等了
  19. P5431 【模板】乘法逆元2
  20. Ajax回调函数无反应及进erro问题记录。

热门文章

  1. 新U盘无盘符,格式化提示无权限的解决方案
  2. 微信公众号的配置及部署
  3. pycharm 误删后恢复
  4. 【步态识别】GQAN步态质量感知网络 算法学习《Gait Quality Aware Network: Toward the Interpretability of Silhouette-Based》
  5. oracle 删除表空间(tablespace)及数据文件的方法
  6. Towards Emotional Support Dialog Systems论文笔记
  7. Lua脚本介绍以及编辑器的介绍
  8. 给出3个参数,N,M,K,怪兽有N滴血,等着英雄来砍自己,英雄每一次打击,都会让怪兽流失[0~M]的血量,到底流失多少?每一次在[0~M]上等概率的获取一个值,求K次打击之后,英雄把怪兽砍死的概率
  9. 在Ubuntu下安装Wine QQ教程(本人亲测)
  10. 被 大电影数百亿恶搞的电影 列表