题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
#include <iostream>
#include <string>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int main() {
string str;
vector<string>temp;
// set<string>set;
set<int>set;
char tmp;
int flag=0;
//利用换行和空格对数据进行处理操作
while(cin>>str)
{
tmp=getchar();
//if((int)tmp==10)
if(flag==0)
temp.push_back(str);
if(flag==1)
{
flag++;
continue;
}
if(flag>1)
set.insert(stoi(str));
if(tmp=='\n')
flag=1;
}
int total_count=0;
string second_string;
string output_string;
for(auto it:set)
{
int app_flag=0;
int app_count=0;
string temp_str="";
for(int i=1;i<temp.size();i++)
{
if(temp[i].find(to_string(it))!=string::npos)
{
// temp_str.append("X");
app_count++;
temp_str.append(to_string(i-1));
temp_str.append(" ");
temp_str.append(temp[i]);
temp_str.append(" ");
// temp_str.append("X");
}
}
if(app_count!=0)
{
// second_string 每一小行
second_string.append(to_string(it));
second_string.append(" ");
second_string.append(to_string(app_count));
second_string.append(" ");
total_count=total_count+2+app_count*2;
second_string.append(temp_str);
// second_string.append("Y");
}
}
//加入最后的总计算
output_string.append(to_string(total_count));
output_string.append(" ");
output_string.append(second_string);
cout<<output_string;
}
// 64 位输出请用 printf("%lld")
