题目链接:传送门
这个是之前周末回家写的来太伟大了
/**
* @Date: 2019-03-14T19:29:04+08:00
* @Last modified time: 2019-03-14T19:29:34+08:00
*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <complex>
#include <algorithm>
#include <climits>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <iomanip>
#define
#define
using namespace std;
typedef long long ll;
set<string> q;
map<string, int> qq;
string s, ss;
int T, ans;
int main(int argc, char const *argv[]) {
cin >> T;
while (T--) {
cin >> ss;
for (int i = 0; i < (int)ss.length(); i++)
if (ss[i] >= 65 and ss[i] <= 90)
ss[i] += 32;
q.insert(ss);
}
getchar(); getline(cin, s);
for (int i = 0; i < (int)s.length(); i++)
if (s[i] >= 65 and s[i] <= 90)
s[i] += 32;
for (int i = 0; i < (int)s.length(); i++)
if (s[i] == ' ' or s[i] == '.' or s[i] == ',') {
int t = 0;
for (int j = i - 1; j >= 0; j--)
if (s[j] == ' ' or s[j] == '.' or s[j] == ',' or !j) {
if (!j) t = j - 1;
else t = j;
break;
}
string sq;
for (int j = t + 1; j < i; j++) sq += s[j];
if (q.count(sq) and !qq[sq]) {
ans++;
qq[sq] = 1;
}
if (s[i] == '.') qq.clear();
}
printf("%d\n", ans);
}