PATB1039: 到底买不买 【经典】
【思路】:
在集合1中 找出其个数 字符都小的集合M,
首先hash s1 记录次数 然后对照 s2如果有,就hash–;if(hash<0)则说明缺少了
【参考答案】
//这是一道十分典型的 在集合1中 找出其个数 字符都小的集合M
//首先hash s1 记录次数 然后对照 s2如果有,就hash--;if(hash<0)则说明缺少了
void B1039(){
string s1, s2;
cin >> s1 >> s2;
int hash[256] = { 0 };
for (int i = 0; i < s1.size(); i++)
{
hash[s1[i]]++;
}
int miss = 0;//缺少的个数,hash不够了
for (int i = 0; i < s2.size(); i++)
{
hash[s2[i]]--;
if (hash[s2[i]] < 0)
{
miss++;
}
}
if (miss > 0)
{
cout << "No " << miss;
}
else{
cout << "Yes " << s1.size() - s2.size();
}
}