Menu

Sign in to track your progress and unlock all features.

Theme style

Log in

Problem No 15

Rotate a list by k positions

Medium

19 minute session

Summary

Rotate elements of a list to the right by k positions (negative k rotates left).

Problem statement

Given a list and an integer k, return a new list where the elements have been rotated to the right by k positions. If k is negative, rotate to the left by abs(k). For example, rotating [1,2,3,4,5] by 2 yields [4,5,1,2,3]. Handle k values larger than the list length by using modulo. If the list is empty, return an empty list.

Task

Implement rotate_list(lst, k) that returns a new list rotated by k positions without mutating the original.

Examples

Rotate right by 2

Input

rotate_list([1,2,3,4,5], 2)

Output

[4, 5, 1, 2, 3]

Explanation

Elements move two positions to the right.

Input format

A list (lst) and an integer k.

Output format

A new list rotated to the right by k positions (or left if k is negative).

Constraints

Do not mutate the input list. Work in O(n) time and O(n) extra space. Handle negative and large k values correctly.

Samples

Sample input 0

rotate_list([1,2,3,4], -1)

Sample output 0

[2, 3, 4, 1]

Explanation 0

Negative k rotates left by 1.

Code editor
Loading editor…

AI assistant

Ask me anything!

Need help? I can explain the core idea behind this problem, review your current code, and give targeted hints. Use “Teach Theory” for the concept, “Get AI hint” for a quick scaffold nudge, or ask a specific question below.

Chat history is temporary and will not be saved.

09:13 PM

Free preview includes 1 Teach Theory response and 1 AI hint per unlocked preview lesson.