Войти Регистрация
Алгоритмы

16. Вертикальная ось симметрии точек

Средняя

Дан список точек points, каждая — [x, y] с целыми координатами. Верните True, если существует вертикальная прямая, относительно которой набор точек симметричен: у каждой точки есть отражение в наборе.

Точки могут повторяться — считаем их одной. Точка на самой прямой отражается сама в себя. Пустой набор симметричен.

В работе: Проверка симметрии макета: зеркальны ли элементы относительно вертикальной оси.

Пример 1

Ввод
points = [[0, 0], [4, 0], [1, 5], [3, 5]]
Вывод
True

Ось x = 2.

Пример 2

Ввод
points = [[0, 0], [3, 1]]
Вывод
False

Ограничения

  • 0 ≤ число точек ≤ 10⁵
  • −10⁸ ≤ координаты ≤ 10⁸
  • Лимит — 1 с на тест.
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def has_vertical_axis(points):
Хеш-таблицаГеометрияцельO(n)

Источник: отчёт о Яндексе, 2023. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.