image.png

    1. #include <iostream>
    2. #include <vector>
    3. #include <algorithm>
    4. #include <string>
    5. using namespace std;
    6. bool match(int num,int find)
    7. {
    8. string str_num = to_string(num);
    9. string str_find = to_string(find);
    10. //*******************************
    11. //字符串查找子串
    12. //*******************************
    13. int flag = str_find.find(str_num);
    14. if(flag!=-1)
    15. return true;
    16. else
    17. return false;
    18. }
    19. int main()
    20. {
    21. int I_num,R_num,Temp;
    22. while(cin>>I_num)
    23. {
    24. vector<int> I_vec;
    25. vector<int> R_vec;
    26. for(int i = 0;i<I_num;i++)
    27. {
    28. cin>>Temp;
    29. I_vec.push_back(Temp);
    30. }
    31. cin>>R_num;
    32. for(int i = 0;i<R_num;i++)
    33. {
    34. cin>>Temp;
    35. R_vec.push_back(Temp);
    36. }
    37. //*******************************
    38. //排序去重
    39. //*******************************
    40. sort(R_vec.begin(),R_vec.end());
    41. R_vec.erase(unique(R_vec.begin(), R_vec.end()), R_vec.end());//去重
    42. //*******************************
    43. //unique,去重,把重复的元素扔在后面,返回首地址
    44. //*******************************
    45. //分类存放
    46. vector<int> R_out_vec;
    47. vector<int> I_cnt_vec;
    48. vector<int> I_index_vec;
    49. vector<int> I_out_vec;
    50. for(int i = 0;i<R_vec.size();i++)
    51. {
    52. int cnt = 0;
    53. for(int j = 0;j<I_num;j++)
    54. {
    55. if(match(R_vec[i],I_vec[j]))
    56. {
    57. cnt++;
    58. I_index_vec.push_back(j);
    59. I_out_vec.push_back(I_vec[j]);
    60. }
    61. }
    62. if(cnt!=0)
    63. {
    64. R_out_vec.push_back(R_vec[i]);
    65. I_cnt_vec.push_back(cnt);
    66. }
    67. }
    68. cout<<R_out_vec.size()+I_cnt_vec.size()+I_index_vec.size()+I_out_vec.size()<<' ';
    69. //分类调用
    70. int off_set = 0;
    71. for(int i = 0;i<R_out_vec.size();i++)
    72. {
    73. cout<<R_out_vec[i]<<' ';
    74. cout<<I_cnt_vec[i]<<' ';
    75. for(int j = 0;j<I_cnt_vec[i];j++)
    76. {
    77. cout<<I_index_vec[j+off_set]<<' ';
    78. cout<<I_out_vec[j+off_set]<<' ';
    79. }
    80. off_set+=I_cnt_vec[i];
    81. }
    82. cout<<endl;
    83. }
    84. }