Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
class practice solution in Creative category for Lightbulb Intro by Takeshi_Sue
from datetime import datetime
from datetime import timedelta
from typing import List
class Bulb:
def __init__(self, els):
self.els = els
self.turn_on_durations = []
for i in range(0, len(self.els), 2):
self.turn_on_durations.append((els[i], els[i+1]))
pass
def total_turn_on_duration(self):
timedeltas = []
for item in self.turn_on_durations:
timedeltas.append(item[1] - item[0])
sum_of_timedeltas = timedelta()
for item in timedeltas:
sum_of_timedeltas += item
return sum_of_timedeltas.total_seconds()
def sum_light(els: List[datetime]) -> int:
return Bulb(els).total_turn_on_duration()
if __name__ == '__main__':
print("Example:")
print(sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 10 , 10),
datetime(2015, 1, 12, 11, 0 , 0),
datetime(2015, 1, 12, 11, 10 , 10),
]))
# These "asserts" are used for self-checking and not for an auto-testing
assert sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 10 , 10),
]) == 610
assert sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 10 , 10),
datetime(2015, 1, 12, 11, 0 , 0),
datetime(2015, 1, 12, 11, 10 , 10),
]) == 1220
assert sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 10 , 10),
datetime(2015, 1, 12, 11, 0 , 0),
datetime(2015, 1, 12, 11, 10 , 10),
datetime(2015, 1, 12, 11, 10 , 10),
datetime(2015, 1, 12, 12, 10 , 10),
]) == 4820
assert sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 0 , 1),
]) == 1
assert sum_light([
datetime(2015, 1, 12, 10, 0 , 0),
datetime(2015, 1, 12, 10, 0 , 10),
datetime(2015, 1, 12, 11, 0 , 0),
datetime(2015, 1, 13, 11, 0 , 0),
]) == 86410
print("The first mission in series is completed? Click 'Check' to earn cool rewards!")
March 4, 2021