0314携程笔试第3题 数字压缩
大家帮忙看下为什么不通过,自己编的测试样例都正确的
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuilder res = new StringBuilder();
List<Long> number = new ArrayList<>();
List<Long> count = new ArrayList<>();
String input = scanner.nextLine();
input = input.substring(1, input.length()-1);
String[] groups = input.split(",");
for (String i : groups){
//String[] data = i.split("\\(");
Long data1 = Long.parseLong(i.substring(0, i.indexOf("(")));
Long data2 = Long.parseLong(i.substring(i.indexOf("(")+1, i.indexOf(")")));
if (number.isEmpty()){
number.add(data1);
count.add(data2);
}
else{
if (data1.equals(number.get(number.size()-1))){
count.set(count.size()-1, count.get(count.size()-1) + data2);
}
else{
number.add(data1);
count.add(data2);
}
}
}
StringJoiner sj = new StringJoiner(",", "[", "]");
System.out.println(number);
System.out.println(count);
for (int i = 0 ; i < number.size() ; i++){
Long n = number.get(i);
Long c = count.get(i);
String k = String.valueOf(n) + "(" + String.valueOf(c) + ")";
sj.add(k);
}
System.out.println(sj.toString());
}
}
查看11道真题和解析