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()); } }