Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 15, 2020 16:43:25

sam2134
Зарегистрирован: 2020-10-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Сдвиг влево

Напишите программу, которая выполняет циклический сдвиг элементов массива влево на R элементов.

Входные данные
Первая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . В третьей строке записано число R ( 0 ≤ R ≤ N ).

Выходные данные
Программа должна вывести в одну строчку все элементы получившегося массива, разделив их пробелами.

Офлайн

#2 Окт. 15, 2020 16:52:49

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Сдвиг влево

и? … ваши мысли на этот счет



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Окт. 15, 2020 16:53:08)

Офлайн

#3 Окт. 15, 2020 21:16:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Сдвиг влево

sam2134
Гарантируется, что 0 < N ≤ 10000
Срезы не подойдут из-за высокого потребления памяти. Используй простой цикл и перестановку по одному. Дек может быть не везде, так как бывают учебные среды с обрезанными питонами.

Хотя в repl.it можно проверить.
https://repl.it/repls/GranularFuchsiaDecimal#main.py

  
>>> 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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version