题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
调 bug 调了一个多小时。。。吐了
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; string s; cin>> n; //存放I序列于vector vector<vector<string> > vec(n, vector<string>(2)); for(int i = 0; i< n; ++i){ cin>> s; vec[i][0]= s; vec[i][1]= to_string(i); } //存放R序列于map容器 map<int,int> mp; cin>> m; for(int i = 0; i< m; ++i) if(cin >>s) mp[stoi(s)]= 0; //循环查找I中元素是否存在R中的字符串,记录于vector容器 vector<string> vec_1; for(auto &i: mp){ for(int j= 0; j< n; ++j) if(vec[j][0].find(to_string(i.first))!= string::npos){ ++i.second; vec_1.emplace_back( vec[j][1] ); vec_1.emplace_back( vec[j][0] ); } } //输出 int num= 0, pos= 0; for(auto const i: mp) if(i.second!= 0) num+= i.second+ 1; cout<< num*2<< ' '; for(auto const j: mp){ if(j.second!=0){ cout<< j.first<< ' ' <<j.second<< ' ' ; for(int i= 0; i< j.second; ++i) cout<< vec_1[pos++]<< ' ' << vec_1[pos++]<< ' ' ; } } }