Форум сайта python.su
Напишите программу, которая выполняет циклический сдвиг элементов массива влево на R элементов.
Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . В третьей строке записано число R ( 0 ≤ R ≤ N ).
Выходные данные
Программа должна вывести в одну строчку все элементы получившегося массива, разделив их пробелами.
Офлайн
и? … ваши мысли на этот счет
Отредактировано AD0DE412 (Окт. 15, 2020 16:53:08)
Офлайн
sam2134Срезы не подойдут из-за высокого потребления памяти. Используй простой цикл и перестановку по одному. Дек может быть не везде, так как бывают учебные среды с обрезанными питонами.
Гарантируется, что 0 < N ≤ 10000
>>> import collections >>> >>> lst = [1, 2, 3, 4, 5] >>> n = 3 >>> >>> deque = collections.deque(lst) >>> deque deque([1, 2, 3, 4, 5]) >>> >>> deque.rotate(-n) >>> print(deque) deque([4, 5, 1, 2, 3]) >>> >>> print(*deque) 4 5 1 2 3 >>>
Отредактировано py.user.next (Окт. 15, 2020 21:18:19)
Офлайн