1039 到底买不买 (20 分)
输入格式:
每个输入包含 1 个测试用例。每个测试用例分别在 2 行中先后给出摊主的珠串和小红想做的珠串,两串都不超过 1000 个珠子。
输出格式:
如果可以买,则在一行中输出 Yes
以及有多少多余的珠子;如果不可以买,则在一行中输出 No
以及缺了多少珠子。其间以 1 个空格分隔。
输入样例 1:
ppRYYGrrYBR2258
YrR8RrY
输出样例 1:
Yes 8
输入样例 2:
ppRYYGrrYB225
YrR8RrY
输出样例 2:
No 2
解:这题还是有桶排序的思想,还是操纵数组,注意:当“Yes”的时候,直接用a串的长度-b串的长度就可以了
#include <cstdio>
#include <cstring>
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <string>
#include <stack>
#include <queue>
#include <vector>
#include <map>
using namespace std;
int c[256];
int main(){
string a,b;
cin>>a>>b;
for(int i=0;i<a.length();i++)
c[a[i]]++;
int result=0;
for(int i=0;i<b.length();i++){
if(c[b[i]]>0){
c[b[i]]--;
}
else result++;
}
if(result!=0)
cout<<"No "<<result;
else cout<<"Yes "<<a.length()-b.length();
return 0;
}