PAT乙级—1039. 到底买不买(20)-native
2016-05-22 22:33
239 查看
小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。
为方便起见,我们用[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
思路:此题同样运用坏键盘的思路,主要是在最后查找多或者少了珠子的时候,如果降到0以下,则要开始记录少了珠子的个数。
题目链接:
https://www.patest.cn/contests/pat-b-practise/1039
为方便起见,我们用[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
思路:此题同样运用坏键盘的思路,主要是在最后查找多或者少了珠子的时候,如果降到0以下,则要开始记录少了珠子的个数。
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main(){ char sale[1005],red[1005]; int temp[150]={0}; gets(sale); gets(red); int len1=strlen(sale); char ch; for(int i=0;i<len1;i++){ ch=sale[i]; temp[ch]++; } int len2=strlen(red); int count1=0; //少了多少颗 int count2=len1-len2;//多了多少颗 for(int i=0;i<len2;i++){ ch=red[i]; temp[ch]--; if(temp[ch]<0) //多少个小于0以及小了多少决定少了多少颗珠子 count1++; } if(count1==0) printf("Yes %d",count2);//没少珠子,输出多了多少 else printf("No %d",count1); return 0; }
题目链接:
https://www.patest.cn/contests/pat-b-practise/1039
相关文章推荐
- 动态规划 xcoj 1233 MCC同学拒绝重复代码
- TensorFlow 从入门到精通(二):MNIST 例程源码分析
- 共和国梵蒂冈非国大
- 作业:C++作业6
- ubuntu下安装thrift
- linux Cent-os vim 背景色设置 vimrc配置
- Jquery 之 使用选择器
- 5分钟实现Android中更换头像功能
- Python处理多个客户端连接---多路复用选择服务器
- 排序算法总结之插入排序
- 坚持翻译吧一天一段 》1
- C#知识点-委托
- session存储数组列子(会话购物车)
- Hadoop学习19--推测式执行
- 原子,锁,还有内存屏障
- 哈希表
- spring mvc 异常统一处理方式
- FFT(快速傅里叶变换):HDU 4609 3-idiots
- 第二章 一切都是对象
- 指针难点汇总