当前位置: 首页 > wzjs >正文

家装e站杭州小程序建设

家装e站,杭州小程序建设,有域名和主机怎么做网站,wordpress媒体管理插件原题 1022 Digital Library - PAT (Advanced Level) Practice 题目大意 给定一本书的id、书名、作者、(多个)关键词、出版社、出版年份,根据输入的书名、作者、(其中一个)关键词、出版社、出版年份按大小顺序返回id 解题思路 先吐槽一句,题目简单是…

原题

1022 Digital Library - PAT (Advanced Level) Practice

题目大意

给定一本书的id、书名、作者、(多个)关键词、出版社、出版年份,根据输入的书名、作者、(其中一个)关键词、出版社、出版年份按大小顺序返回id

解题思路

先吐槽一句,题目简单是简单,麻烦是真麻烦...

利用哈希表来储存元素,由于可能多本书有相同的关键字,因此用vector<string>来储存答案的id。

另外,对于keywords,我们要额外进行空格分割,再分别将每一个关键词存入哈希表。

代码(c++)
#include <bits/stdc++.h>
#include <map>
#include <vector>
#include <algorithm>using namespace std;const int N = 10010;int n, m;
unordered_map<string, vector<string>> title_m;        // 书名哈希表
unordered_map<string, vector<string>> author_m;       // 作者哈希表
unordered_map<string, vector<string>> key_m;          // 关键词哈希表
unordered_map<string, vector<string>> publisher_m;    // 出版社哈希表
unordered_map<string, vector<string>> year_m;         // 年份哈希表void split(string s, unordered_map<string, vector<string>> &m, string id) {  // 根据空格分割关键词int len = 0;for(int i = 0; i < s.size(); i++) {if(s[i] == ' ') {string str = s.substr(i - len, len);m[str].push_back(id);len = -1;                            // len为-1因为马上下面就要+1了}len++;}string str = s.substr(s.size() - len);m[str].push_back(id);
}bool find_id(const string& search, const unordered_map<string, vector<string>>& m) {auto it = m.find(search); if (it != m.end())                            // 找到,排序输出并返回truevector<string> res = it->second;  sort(res.begin(), res.end());for (string id : res) cout << id << endl;return true;                    }return false;
}int main() {string sn;getline(cin, sn);                                    // 此处用getline读入,防止有其他空格n = atoi(sn.c_str());for(int i = 0; i < n; i++) {string id, title, author, key, publisher, year;getline(cin, id);getline(cin, title);getline(cin, author);getline(cin, key);getline(cin, publisher);getline(cin, year);title_m[title].push_back(id);author_m[author].push_back(id);publisher_m[publisher].push_back(id);split(key, key_m, id);year_m[year].push_back(id);}string sm;getline(cin, sm);m = atoi(sm.c_str());vector<string> ans;for (int i = 0; i < m; i++) {string search_id;getline(cin, search_id);cout << search_id << endl;string search = search_id.substr(3, search_id.size() - 3);  // 注意输入的search是带id的,先去掉if (find_id(search, title_m)) continue;if (find_id(search, author_m)) continue;if (find_id(search, key_m)) continue;if (find_id(search, publisher_m)) continue;if (find_id(search, year_m)) continue;cout << "Not Found" << endl;}
}

http://www.dtcms.com/wzjs/834710.html

相关文章:

  • 关于拳馆网站建设计划书wordpress写文章怎么添加图片
  • 安国市城乡建设局网站怎么拥有自己的网站
  • 构建网站需要会什么意思太原如何做百度的网站
  • 奥林匹克做校服的网站深圳创业孵化基地入驻条件
  • 代理上海建站公司注册门户网站建设汇报材料
  • 北京网站建设公司内江网站开发会用到的框架
  • 大同市网站建设胶带制作彩虹光影图片
  • 收费下载的wordpress网站商城网站备案需要什么
  • 东莞网站推广建设ssh做的大型网站
  • 网站建站建设深圳华鑫峰网站建设
  • 站点建错了网页能打开吗wordpress 每页 关高
  • 申请一个网站空间虚拟主机是指什么
  • dede网站地图路径东莞网红打卡地
  • 浙江省信息港官网潍坊seo招聘
  • 江门网站建设服务做网站赚不到钱了
  • wordpress基础主题站WordPress主题如何更新
  • 网站为什么被kwordpress 固态链接
  • 个人注册网站怎么注册网店推广的常用方法有哪些
  • 第一次做网站时是怎样的心情网站配色设计
  • 成都网站制网络营销的方法
  • 夺宝网站制作网站推广策划案哪里有
  • 长沙制作网站公司万网云服务器怎么上传网站吗
  • 企业外贸网站建设方案新手学做网站代码
  • 个人做的网站有什么危险吗阳新县建设局网站
  • phpcms 网站wordpress 标题关键词
  • 做类似返利网的网站有哪些展览展示设计网站
  • 密云建设网站网站备案的幕布尺寸
  • 品牌策划与推广实训报告南昌网站建设优化公司排名
  • 网站创建的基本流程响应式网站设计开发
  • 广州品牌网站设计公司手机商城网站案例