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

为方便起见,我们用[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

将两个字符串按字典序排序后,然后类似两个有序链表合并的形式(O(m+n))进行比较,每当比对成功一个字符,就把des串中对应的位置置为' '

最后如果des串中仅有' ',则匹配成功,多出来的数量必为lenSrc-lenDes;反之匹配失败,失败数就是非空格数

#include <bits/stdc++.h>
#define LL long long
#define MAXN 1000+50
using namespace std;char src[MAXN], des[MAXN];
bool cmp(const char &a, const char &b){return a < b;
}
int  main(){scanf("%s", src);int lenSrc = strlen(src);sort(src, src+lenSrc, cmp);scanf("%s", des);int lenDes = strlen(des);sort(des, des+lenDes, cmp);int i = 0, j = 0;for(i = 0; i < lenSrc; ++i){if(j == lenDes){break;}if(src[i] == des[j]){des[j] = ' ';++j;}else if(src[i] > des[j]){++j;--i;}else if(src[i] < des[j]){//doNothing
        }}int res = 0;for(int t = 0; t < lenDes; ++t){if(des[t] != ' '){res++;}}if(res){printf("No %d\n", res);}else{printf("Yes %d\n", lenSrc-lenDes);}return 0;
}

CAPOUIS'CODE

转载于:https://www.cnblogs.com/capouis/p/4652489.html

PAT-BASIC-1039-到底买不买相关推荐

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

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

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

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

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

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

  4. PAT乙级 1039 到底买不买

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

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

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

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

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

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

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

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

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

  9. pat题解java,1039 到底买不买 (20分) Java题解 PAT (Basic Level) Practice (中文)- 巧妙开大数组减少代码量...

    1039 到底买不买 (20分) 原题链接:传送门 一.题目: 输入样例 1: ppRYYGrrYBR2258 YrR8RrY 输出样例 1: Yes 8 输入样例 2: ppRYYGrrYB225 ...

  10. 适合初步练习PAT乙级——(1039) 到底买不买

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

最新文章

  1. VBA:指定なフォルダしたのすべてのファイル名
  2. Mysql源码学习——源码目录结构
  3. php概率计算_php 抽奖概率算法
  4. Win API记录点滴
  5. laravel 服务提供者
  6. 在台湾当程序员是一种什么样的体验?
  7. 如何为Swift进行宏定义
  8. 早期预警系统的组成要素
  9. 计算机科学与技术志愿意愿,高考志愿填报如何得高分
  10. 清代考生是如何作弊?很是牛啊!
  11. MiniTable 16 网络版安装部署
  12. 精心整理Node.js入门---原理篇
  13. Linux中arp表的老化机制
  14. flash for linux安装教程,Flash Player 9 FOR Linux 的安装
  15. 细致琐碎的事才是工作的主旋律
  16. re 正则表达式匹配中文
  17. 动物识别系统代码python_动物识别系统代码
  18. python批量下载微博贴评论图片
  19. 2017年乌镇互联网大会部分要点实地记录
  20. STM32,点亮RGB灯,指南者,新手

热门文章

  1. linux tar压缩解压命令
  2. java程序设计复习题_java程序设计复习大全(100题及答案).doc
  3. cognos 样例 oracle,Cognos10安装和sample配置(ORACLE学样例)
  4. python 简单网页_Python爬虫 (一):爬取一个简单的静态网页
  5. linux 换行符_一个linux帮你做高效数据统计
  6. java设计模式建造_Java设计模式——建造模式(Builder Pattern)
  7. mysql外键约束查询语句_MySQL数据库 : 查询语句,连接查询及外键约束
  8. linux如何判断光盘是否挂载,LInux下如何挂载光盘找rpm包的方法步骤
  9. c语言制表符_随时随地学习C语言之1—开发环境搭建
  10. 女友刷B站流量告急,技术男友轻松搞定!