PAT-BASIC-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
将两个字符串按字典序排序后,然后类似两个有序链表合并的形式(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-到底买不买相关推荐
- PAT乙级 1039 到底买不买 (20分)
1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...
- PAT 乙级1039 到底买不买(C语言)
1039 到底买不买 (20分) 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子? ...
- [PAT乙级]1039 到底买不买
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- PAT乙级 1039 到底买不买
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- PAT 乙级 1039. 到底买不买(20)Java版
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- C++/Python PAT 乙级 1039 到底买不买(20)
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- pat 乙级 1039 到底买不买 (20分)(C语言)
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- PAT(乙级) 1039 到底买不买
题目 题目链接 思路 用map记录每个字符各有多少个,然后依次查找有没有想要的字符,分为两种情况:1.找到了,要看数量够不够:2,未找到:用一个变量存储不够的字符数即可 代码 #include < ...
- pat题解java,1039 到底买不买 (20分) Java题解 PAT (Basic Level) Practice (中文)- 巧妙开大数组减少代码量...
1039 到底买不买 (20分) 原题链接:传送门 一.题目: 输入样例 1: ppRYYGrrYBR2258 YrR8RrY 输出样例 1: Yes 8 输入样例 2: ppRYYGrrYB225 ...
- 适合初步练习PAT乙级——(1039) 到底买不买
适合初步练习PAT乙级--(1039) 到底买不买 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全 ...
最新文章
- VBA:指定なフォルダしたのすべてのファイル名
- Mysql源码学习——源码目录结构
- php概率计算_php 抽奖概率算法
- Win API记录点滴
- laravel 服务提供者
- 在台湾当程序员是一种什么样的体验?
- 如何为Swift进行宏定义
- 早期预警系统的组成要素
- 计算机科学与技术志愿意愿,高考志愿填报如何得高分
- 清代考生是如何作弊?很是牛啊!
- MiniTable 16 网络版安装部署
- 精心整理Node.js入门---原理篇
- Linux中arp表的老化机制
- flash for linux安装教程,Flash Player 9 FOR Linux 的安装
- 细致琐碎的事才是工作的主旋律
- re 正则表达式匹配中文
- 动物识别系统代码python_动物识别系统代码
- python批量下载微博贴评论图片
- 2017年乌镇互联网大会部分要点实地记录
- STM32,点亮RGB灯,指南者,新手
热门文章
- linux tar压缩解压命令
- java程序设计复习题_java程序设计复习大全(100题及答案).doc
- cognos 样例 oracle,Cognos10安装和sample配置(ORACLE学样例)
- python 简单网页_Python爬虫 (一):爬取一个简单的静态网页
- linux 换行符_一个linux帮你做高效数据统计
- java设计模式建造_Java设计模式——建造模式(Builder Pattern)
- mysql外键约束查询语句_MySQL数据库 : 查询语句,连接查询及外键约束
- linux如何判断光盘是否挂载,LInux下如何挂载光盘找rpm包的方法步骤
- c语言制表符_随时随地学习C语言之1—开发环境搭建
- 女友刷B站流量告急,技术男友轻松搞定!