Browse Source

Итоговая версия

Все 3 задачи решены, проведен рефакторинг.
master
Дмитрий 3 years ago
parent
commit
901a92bb0b
  1. 8
      intervals_cleaning.py
  2. 7
      readme.org
  3. 4
      task_3.py

8
intervals_cleaning.py

@ -1,4 +1,8 @@
"""Функции для чистки инервалов.""" """Модуль, содержащий функции для чистки интервалов.
Под 'чисткой' подразумевается:
- удаление меньших интервалов, полностью входящих в большие (поглощение)
- расширение пересекающихся интервалов (сумма интервалов)
"""
def get_smaller_interval(interval_A, interval_B) -> list: def get_smaller_interval(interval_A, interval_B) -> list:
@ -96,6 +100,6 @@ def normilize_intervals(intervals) -> list:
# получаем расширенные интервалы # получаем расширенные интервалы
extended_intervals = get_extended_intervals(intervals_) extended_intervals = get_extended_intervals(intervals_)
# убираем вложенные инетрвалы # убираем вложенные интервалы
n_intervals = absorb_small_included_intervals(intervals_ + extended_intervals) n_intervals = absorb_small_included_intervals(intervals_ + extended_intervals)
return n_intervals return n_intervals

7
readme.org

@ -1,7 +1,12 @@
#+title: Тестовое задание #+title: Тестовое задание
#+date: [2022-07-12 вт 17:54] #+date: [2022-07-12 вт 17:54]
https://docs.google.com/document/d/1Y_JYZmbKUmJEkGp9bdJz6SjtaFXuJNrRrxHN1dXnPzY/edit * Предисловие
Я умею работать с git и понимаю, что нельзя так сходу коммитить в мастер. Но в данном случае я пожертвовал правильностью ведения репозитория ради скорости разработки.
Третья задача была самой интересной. :)
Использовал Python 3.10.4.
* Задача №1 * Задача №1

4
task_3.py

@ -1,5 +1,5 @@
"""Задание на расчет интервалов, и вычисление времени, которое ученик """Задание на расчет интервалов, и вычисление времени, которое ученик
и учитель присуствовали на уроке одновременно.""" и учитель присутствовали на уроке одновременно."""
from intervals_cleaning import normilize_intervals from intervals_cleaning import normilize_intervals
tests = [ tests = [
@ -101,7 +101,7 @@ def get_intersection(interval_A, interval_B) -> list:
def appearance(intervals) -> int: def appearance(intervals) -> int:
"""Возвращает время одновременного присуствия ученика и учителя на """Возвращает время одновременного присутствия ученика и учителя на
уроке в секундах.""" уроке в секундах."""
lesson = intervals["lesson"] lesson = intervals["lesson"]
pupil = normilize_intervals(intervals["pupil"]) pupil = normilize_intervals(intervals["pupil"])

Loading…
Cancel
Save