题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.awt.List;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.function.Function;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import static java.util.Arrays.*;
import static java.util.stream.Stream.*;
public class Main {
public static void main(String[] args) throws IOException {
testTh();
}
private static void testTh() throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str = bf.readLine()) != null) {
int indexOf = str.indexOf(" ");
String[] s = stream(str.substring(indexOf).split(" ")).skip(1).toArray(
String[]::new);
str = bf.readLine();
int i = str.indexOf(" ");
String[] s1 = str.substring(i).split(" ");
Integer[] integers = stream(s1).distinct().skip(1).map(new
Function<String, Integer>() {
@Override
public Integer apply(String s) {
return Integer.parseInt(s);
}
}).toArray(Integer[]::new);
String[] keys = stream(integers).sorted().map(new Function<Integer, String>() {
@Override
public String apply(Integer integer) {
return integer + "";
}
}).toArray(String[]::new);
HashMap<String, Integer> count = new HashMap<>();
HashMap<String, String> index = new HashMap<>();
int sum = 0;
for (String key : keys) {
count.put(key, 0);
int temp = 0;
for (int i1 = 0; i1 < s.length; i1++) {
if (s[i1].contains(key)) {
Integer integer = count.get(key);
integer++;
count.put(key, integer);
if (index.containsKey(key)) {
String index_k = index.get(key);
index_k = index_k + " " + i1 + " " + s[i1];
index.put(key, index_k);
} else {
index.put(key, i1 + " " + s[i1]);
}
temp = integer;
}
}
sum = sum + temp * 2;
}
for (String object : keys) {
if (count.get(object) > 0)sum = sum + 2;
}
System.out.print(sum + " ");
for (String object : keys) {
Integer integer = count.get(object);
if (integer > 0) {
Stream.of(object).forEach(System.out::print);
System.out.print(" " + integer + " ");
Stream.of(index.get(object)).forEach(System.out::print);
System.out.print(" ");
}
}
}
}
}

美团成长空间 2640人发布

查看22道真题和解析