Александра обнови решението на 19.10.2022 17:21 (преди около 2 години)
+directions = {'C0FFC0': lambda x, y: (x - 1, y),
+ '00C000': lambda x, y: (x + 1, y),
+ 'FFFFC0': lambda x, y: (x, y - 1),
+ 'C0C000': lambda x, y: (x, y + 1),
+ 'FFC0C0': lambda x, y: (x + 1, y),
+ 'C00000': lambda x, y: (x - 1, y),
+ 'C0C0FF': lambda x, y: (x, y + 1),
+ '0000C0': lambda x, y: (x, y - 1),
+ 'FFFFFF': lambda x, y: (x, y),
+ '000000': lambda x, y: (x, y),
+ }
+
+
+def calculate_final_vector(*args):
+ start_coordinates, arr = args
+ x1, y1 = start_coordinates
+ for direction in arr:
+ if direction == '000000':
+ break
+ x1, y1 = directions[direction.upper()](x1, y1)
+
+ return x1, y1
+
+
Решението е супер, чисто, спазва PEP8, единствената забележка е arr. Името на променливата не говори много за това какви данни се съдържат вътре, знаем единствено, че е някаква колекция.
P.S. И ламбдата за '000000' е ненужна, защото винаги брейкваш.
Получаваш една бонус точка за идеята с ламбдите и чистата имплементация.