Георги обнови решението на 23.10.2022 12:38 (преди около 2 години)
+DIRECTIONS = {
+ 'RIGHT': ['00C000', 'FFC0C0'],
+ 'UP': ['C0C000', 'C0C0FF'],
+ 'LEFT': ['C00000', 'C0FFC0'],
+ 'DOWN': ['FFFFC0', '0000C0']
+}
+STOP_MOVE = '000000'
+SKIP_MOVE = 'FFFFFF'
+
+
+def calculate_final_vector(starting_point, colors):
+ x, y = starting_point
+
+ for color in [c.upper() for c in colors]:
+ if color in DIRECTIONS['RIGHT']:
+ x += 1
+ elif color in DIRECTIONS['UP']:
+ y += 1
+ elif color in DIRECTIONS['LEFT']:
+ x -= 1
+ elif color in DIRECTIONS['DOWN']:
+ y -= 1
+ elif color == SKIP_MOVE:
+ continue
+ elif color == STOP_MOVE:
+ break
+
+ return x, y
Единствено бих обърнал внимание, че SKIP_MOVE
е излишно - както дефиницията, така и проверката за него.
Реално погледнато, обаче, и аз бих го сложил, за да направя по-близка асоциация с изискванията.
Решението е добро!