我在 Hackerrank 上解决这个问题。我必须对大量数字进行排序的地方。所以我所做的是使用 collection.sort 方法并使用自定义比较器对数组进行排序。所以我的比较方法实际上是比较字符串,因为我不能使用 int 或 double 因为数字范围更大。我注意到的是,当我使用 sc.nextLine() 进行扫描时,它并没有通过所有测试用例。但是当我使用 sc.next() 它通过了所有测试用例。谁能告诉我这背后的原因。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();sc.nextLine();
List<String> list=new ArrayList();
for(int i=0;i<x;i++){
list.add(sc.next());
}
Collections.sort(list, (s1,s2) ->{
if(s1.length()==s2.length())
return s1.compareTo(s2);
return s1.length()>s2.length()?1:-1;
}
);
for(String str:list)
System.out.println(str);
}