题意理解
有两个序列的整数,一个序列当成规则序列,对于这个序列的每个整数,在另外一个序列查找包含这个整数的数,打印这个整数的序号和整数值。这个规则序列需要预先排序剔重,对于每个规则的整数找到的整数序列,打印规则的整数,找到的整数序列个数,每个匹配到的整数序号和整数值。最后在前面记录总个数。
问题分析
用vector,algorithm(sort,unique)
算法思路:用vector<string>记录两个序列,I表示整数序列,R表示规则序列;对R序列排序,剔重,再遍历R序列,对于每个规则,在I序列中查找子串,如果找到将序号和整数值加入新vector<string>,I遍历结束后,在新vector上insert(vector.begin(),to_string(vector.size()/2)),insert(vector.begin(), to_string(规则整数)),然后插入结果序列Res, insert(Res.begin(), vector.begin(), vector.end()), 当遍历完所有R序列, 在insert(Res.begin(), to_string(Res.size())).
其他
涉及到几个泛型算法
sort, unique, insert, push_back.
剔重注意返回的是结尾迭代器。
to_string(int):整数转字符串
atoi(string.c_str()):字符串转整数 <stdlib.h>
参考:https://www.cnblogs.com/smile233/p/8379802.html
链接
https://github.com/xierensong/learngit/blob/master/ncode/21/21.cpp