Выбор ответа Junior Задачи на Kotlin спрашивают часто обновлено

Быстрый ввод в Kotlin для контеста

Вопрос

Нужно прочитать 200 000 чисел из одной строки. Какой способ надёжнее и быстрее всего?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: BufferedReader и StringTokenizer. BufferedReader читает большими кусками, а StringTokenizer режет строку без регулярных выражений и терпит двойные пробелы.

Варианты ответа

  1. readln().split(" ").map { it.toInt() }
  2. Scanner(System.in).nextInt() в цикле
  3. BufferedReader и StringTokenizerправильный ответ
  4. readLine()!!.toCharArray() и ручной разбор каждой цифры в String

Разбор

BufferedReader читает большими кусками, а StringTokenizer режет строку без регулярных выражений и терпит двойные пробелы. Scanner использует регулярки и заметно медленнее на больших вводах. split(" ").map работает, но создаёт список строк и падает на двойном пробеле (toInt от пустой строки). Ручной разбор быстр, но сложен и не нужен.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.