zoj1315

来源:互联网 发布:济南知豆电动汽车租赁 编辑:程序博客网 时间:2024/06/05 01:50
#include <iostream>#include <stdio.h>#include <string>#include <vector>#include <algorithm>using namespace std;struct Info {string s;int count;};bool isNotAlphet(char ch) {if(ch < 'a' || ch > 'z') return true;else return false;}bool cmp(const Info &a, const Info &b) {return a.count > b.count;}int main(){int n, m, count = 0;;string s;char str[80];Info info;vector<string> keywords;vector<Info> excuses;while(scanf("%d %d", &n, &m) != EOF) {count ++;keywords.clear();excuses.clear();for(int i = 0; i < n; i ++) {cin >> s;keywords.push_back(s);}getchar();for(int i = 0; i < m; i ++) {cin.getline(str, 80);s = str;for(int j = 0; j < s.size(); j ++)  {if(s[j] >= 'A' && s[j] <= 'Z') {//如果是大写字母则转换成小写字母s[j] += 32;}}int num = 0;for(int j = 0; j < keywords.size(); j ++) {//找出每个关键字在该局中出现的次数int site = 0;while(s.find(keywords[j], site) < s.size()) {int  tmp = s.find(keywords[j], site);if(tmp == 0) {//如果关键字在开头的位置if(isNotAlphet(s[tmp + keywords[j].size()])) {num ++;}}else {if(isNotAlphet(s[tmp - 1]) && isNotAlphet(s[tmp + keywords[j].size()])) {num ++;}}site = tmp + keywords[j].size();if(site >= s.size()) break;}}info.count = num;info.s = str;excuses.push_back(info);}sort(excuses.begin(), excuses.end(), cmp);cout << "Excuse Set #" << count << endl;for(int i = 0; i < excuses.size(); i ++) {if(i == 0) {cout << excuses[i].s << endl;}else {if(excuses[0].count == excuses[i].count) {cout << excuses[i].s << endl;}}}cout << endl;}return 0;}

原创粉丝点击