Я решал эту проблему на Хакерранке. Где я должен был сортировать большие числа. Поэтому я использовал метод collection.sort и использовал собственный компаратор для сортировки массива. так что мой метод сравнения фактически сравнивал строку, так как я не могу использовать int или double, поскольку диапазон чисел был больше. Я заметил, что когда я использовал s c .nextLine () для сканирования, он не прошел все тестовые случаи. Но когда я использовал s c .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);
}