题解 | #数据分类处理#

数据分类处理

https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd

#include <iostream>
#include <sys/types.h>
#include <type_traits>
#include <vector>
#include <algorithm>
#include <string.h>
#include <string>
#include <cstdlib>
#include <map>
using namespace std;
map<int,int> countt;
vector<int>ans;

bool judge(int n,int target)
{
  string a=to_string(n);
  string b=to_string(target);
  if(strstr(a.c_str(),b.c_str())) return true;
  return false;
}

int main() {
   int a;
   int sum=0;
   cin>>a;
   int temp;
   vector<int> v1;
   for(int i=0;i<a;i++)
   {
      cin>>temp;
      v1.push_back(temp);
   }
   int b;
   cin>>b;
   vector<int> v2;
   for(int i=0;i<b;i++)
   {
    cin>>temp;
    v2.push_back(temp);
   }
   sort(v2.begin(),v2.end());
   for(int i=0;i<b;i++)
   {
    while(v2[i+1]==v2[i]) i++;
    for(int j=0;j<a;j++)
    {
    if(judge(v1[j],v2[i])) 
    {
        countt[v2[i]]++;
        ans.push_back(j);
        ans.push_back(v1[j]);
    }
    }
   }
    for(int i=0;i<countt.size();i++)
    if(countt[i]!=0) sum++;
    cout<<ans.size()+sum*2<<" ";
    int c=0;
    for(int i=0;i<countt.size();i++)
    {
        if(countt[i]!=0)
        {
            cout<<i<<" "<<countt[i]<<" ";
            for(int j=0;j<countt[i];j++)
            cout<<ans[c+2*j]<<" "<<ans[c+2*j+1]<<" ";
            c=c+countt[i]*2;
        }
    } 
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务