知识点:模拟
这个是一个简单的字符串模拟的题,用数组散列模拟很简单,就是需要注意一下题意,猜一个前面已经猜过的数,如果那个数是正确的,那么错误的次数加一,如果那个数本身就是不正确的,那么错误的次数不需要加一,只要把这个弄明白了,这个题就过了,这个也是我看洛谷的讨论区看的,以后做题还是先要看一下讨论区有没有题意的翻译或者提醒
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
while (cin >> n && n != -1) {
string s1, s2;
cin >> s1 >> s2;
int l1 = (int) s1.size();
int l2 = (int) s2.size();
int h1[30] = {}, h2[30] = {};
int cnt1 = 0, cnt2 = 0;
for (int i = 0; i < l1; i++) {
if (!h1[s1[i] - 'a']) {
h1[s1[i] - 'a'] = 1;
cnt1++;
}
}
int rec = 0;
for (int i = 0; i < l2; i++) {
if (!h2[s2[i] - 'a']) {
h2[s2[i] - 'a'] = 1;
if (h1[s2[i] - 'a']) cnt2++;
else rec++;
} else {
i