Входной файл: | Стандартный вход | Ограничение времени: | 1 сек | |
Выходной файл: | Стандартный выход | Ограничение памяти: | 512 Мб |
Требуется реализовать на языке Python класс
ShiftableList(list)
, который наследуется от list
и реализует операторы циклического сдвига влево (<<)
и вправо (>>). Результатом выполнения этих операций должен быть
новый объект, при этом исходный не изменяется. Если операнд справа от оператора сдвига имеет тип, отличный от int
,
необходимо вызвать исключение TypeError
. В случае, если величина сдвига отрицательна,
должен выполниться сдвиг в противоположную сторону на количество позиций, равное модулю этой величины.
Код решения должен содержать только определение и реализацию класса.
№ | Стандартный вход | Стандартный выход |
---|---|---|
1 | lst = ShiftableList(['a', 'b', 'c'])
lst2 = lst << 1
print(', '.join(lst2))
|
|
2 | lst = ShiftableList(['a', 'b', 'c'])
lst2 = lst >> -2
print(''.join(lst), ''.join(lst2))
|
|