题目大意:给出两个字符串,判断第二个字符串的所有字符是否都在第一个字符串内,如果是,输出第一个字符串中多余字符的个数,否则输出第一个字符串中缺少的字符的个数。
建立两个hashTable用来存储两个字符串内字符对应的个数,再比较即可。
AC代码:
#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int main()
{
vector<int> need(256), sale(256);
string s1, s2;
getline(cin, s1);
getline(cin, s2);
for (int i = 0; i < s1.size(); ++i)
sale[s1[i]]++;
for (int i = 0; i < s2.size(); ++i)
need[s2[i]]++;
bool flag = true;
int missingCnt = 0;
for (int i = 0; i < 256; ++i)
{
if(sale[i] < need[i])
{
missingCnt += need[i] - sale[i];
flag = false;
}
}
if(flag) printf("Yes %d", s1.size() - s2.size());
else printf("No %d", missingCnt);
return 0;
}