华为机试题:数据分类处理
来源:互联网 发布:类似yolo的软件 编辑:程序博客网 时间:2024/05/17 06:22
题目描述
信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、QQ用户、手机号码、银行帐号等信息及活动记录。
采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出。
输入描述:
一组输入整数序列I和一组规则整数序列R,I和R序列的第一个整数为序列的个数(个数不包含第一个整数);整数范围为0~0xFFFFFFFF,序列个数不限
输出描述:
从R依次中取出R<i>,对I进行处理,找到满足条件的I<j>:
I<j>整数对应的数字需要连续包含R<i>对应的数字。比如R<i>为23,I<j>为231,那么I<j>包含了R<i>,条件满足 。
按R<i>从小到大的顺序:
(1)先输出R<i>;
(2)再输出满足条件的I<j>的个数;
(3)然后输出满足条件的I<j>在I序列中的位置索引(从0开始);
(4)最后再输出I<j>。
附加条件:
(1)R<i>需要从小到大排序。相同的R<i>只需要输出索引小的以及满足条件的I<j>,索引大的需要过滤掉
(2)如果没有满足条件的I<j>,对应的R<i>不用输出
(3)最后需要在输出序列的第一个整数位置记录后续整数序列的个数(不包含“个数”本身)
序列I:15,123,456,786,453,46,7,5,3,665,453456,745,456,786,453,123(第一个15表明后续有15个整数)
序列R:5,6,3,6,3,0(第一个5表明后续有5个整数)
输出:30, 3,6,0,123,3,453,7,3,9,453456,13,453,14,123,6,7,1,456,2,786,4,46,8,665,9,453456,11,456,12,786
说明:
30----后续有30个整数
3----从小到大排序,第一个R<i>为0,但没有满足条件的I<j>,不输出0,而下一个R<i>是3
6--- 存在6个包含3的I<j>
0--- 123所在的原序号为0
123--- 123包含3,满足条件
输入例子:
15 123 456 786 453 46 7 5 3 665 453456 745 456 786 453 1235 6 3 6 3 0
输出例子:
30 3 6 0 123 3 453 7 3 9 453456 13 453 14 123 6 7 1 456 2 786 4 46 8 665 9 453456 11 456 12 786
java代码实现:
import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.Scanner;import java.util.TreeSet;public class Main{public static int[] sortedNoRepString(String str) {TreeSet<String> myset = new TreeSet<>();String[] strArr = str.split(" ");for (int i = 1; i < strArr.length; i++) {myset.add(strArr[i]);}int[] intArr = new int[myset.size()];Iterator<String> iterator = myset.iterator();int n = 0;while (iterator.hasNext()) {intArr[n] = Integer.parseInt(iterator.next());n += 1;}Arrays.sort(intArr);return intArr;}public static ArrayList<String> datapro(String str01, int[] intArrTemp) {int k = 0;String[] strArr01 = str01.split(" ");ArrayList<String> arrayList = new ArrayList<>();for (int i = 0; i < intArrTemp.length; i++) {StringBuilder stringBuilder = new StringBuilder();for (int j = 1; j < strArr01.length; j++) {if (strArr01[j].contains(intArrTemp[i]+"")) {k += 1;int temp = j - 1;stringBuilder.append(temp + " " + strArr01[j] + " ");}}if (k != 0) {String strtemp = intArrTemp[i] + " " + k + " " + stringBuilder.toString();arrayList.add(strtemp);k = 0;}}return arrayList;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ String stringI = scanner.nextLine();String stringR = scanner.nextLine();int[] intTemp = sortedNoRepString(stringR);ArrayList<String> resultList = datapro(stringI, intTemp);StringBuilder sBuilder = new StringBuilder();for (int i = 0; i < resultList.size(); i++) {sBuilder.append(resultList.get(i));}String sTemp = sBuilder.toString().trim();int sunNum = sTemp.split(" ").length;sTemp = sunNum +" "+sTemp.toString();System.out.println(sTemp.trim()); }}}
- 华为机试题:数据分类处理
- 华为机试---数据分类处理
- [华为OJ] 数据分类处理
- 华为OJ数据分类处理
- 华为OJ_数据分类处理
- 《华为机试在线训练》之数据分类处理
- 【华为OJ】【091-数据分类处理】
- 华为在线编程系列-数据分类处理
- 华为OJ——数据分类处理
- 华为机试在线训练-牛客网(15)数据分类处理
- 华为机试题--- 大数相加 异常处理
- 华为机试题——字符串处理
- 华为机试题(字符串处理集锦)
- 字符串处理转换(2013华为机试题)
- 数据分类:特征处理
- HW----数据分类处理
- 数据分类处理
- 华为机试题
- Nginx安装与简单的负载均衡(centos6.5)
- windows运行打开服务命令集合
- 内部样式表
- Java多线程 之 wait、notifyAll(十二)
- 替代Protocol buffers 的FlatBuffers:高效利用内存的序列化函数库(Unity中测试)
- 华为机试题:数据分类处理
- matlab-基础 用disp输出含有变量的句子
- SwipeRefreshLayout实现上拉下拉刷新
- 对象导论之继承
- 文章标题
- 一些jar的作用
- 第六章 Lighting Models
- A strange lift (HDU1548)
- Tensorflow: recurrent neural network (mnist basic)