Поворот влево в списке: нарезка, извлечение и добавление, конкатенация и декирование

Поворотом влево в списке называется операция смещения элементов списка влево на указанное количество позиций. Вот несколько способов выполнить поворот списка влево:

  1. Использование срезов.
    Один простой метод — использовать срез списка для извлечения подсписка, начиная с желаемой позиции поворота, и объединения его с подсписком от начала списка до позиции поворота. Вот пример на Python:
def left_rotate_list(arr, k):
    return arr[k:] + arr[:k]
  1. Использование Pop и Append:
    Другой подход заключается в многократном извлечении первого элемента списка и добавлении его в конец списка на желаемое количество оборотов. Вот пример использования Python:
def left_rotate_list(arr, k):
    for _ in range(k):
        arr.append(arr.pop(0))
    return arr
  1. Использование объединения списков.
    Вы также можете добиться поворота влево, объединив подсписок, начиная с позиции поворота, с подсписком, начиная с начала списка. Вот пример на Python:
def left_rotate_list(arr, k):
    return arr[k:] + arr[:k]
  1. Использование Deque:
    Структуру данных deque (двусторонняя очередь) можно использовать для эффективного выполнения вращения влево путем вращения элементов по кругу. Вот пример использования модуля Python collections:
from collections import deque
def left_rotate_list(arr, k):
    d = deque(arr)
    d.rotate(-k)
    return list(d)