题解 | #数据分类处理#
数据分类处理
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++]<< ' ' ;
}
}
}


查看1道真题和解析