PTA | 程序设计类实验辅助教学平台 (pintia.cn)
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1, s2;
cin >> s1 >> s2;
int m1[256] = {0}, m2[256] = {0};
for (int i = 0; i < s1.size(); i++) {
m1[s1[i]]++;
}
int count = 0;
for (int i = 0; i < s2.size(); i++) {
if (m1[s2[i]] > 0) {
m1[s2[i]]--;
} else {
count++;
}
}
if (count == 0) {
cout << "Yes " << s1.size() - s2.size() << endl;
} else {
cout << "No " << count << endl;
}
return 0;
}
简要写法
#include <iostream>
using namespace std;
int book[256];
int main() {
string a, b;
cin >> a >> b;
for (int i = 0; i < a.length(); i++)
book[a[i]]++;
int result = 0;
for (int i = 0; i < b.length(); i++) {
if (book[b[i]] > 0)
book[b[i]]--; //如果是小红需要的珠子,则在个数上减一,代表取走。
else
result++; //记下缺乏需要的珠子个数
}
if(result != 0)
printf("No %d", result);
else
printf("Yes %d", a.length() - b.length());
return 0;
}