55 lines
1.5 KiB
Python
55 lines
1.5 KiB
Python
|
"""
|
|||
|
An array A consisting of N integers is given. Rotation of the array means that
|
|||
|
each element is shifted right by one index, and the last element of the array
|
|||
|
is moved to the first place. For example, the rotation of array A = [3, 8, 9,
|
|||
|
7, 6] is [6, 3, 8, 9, 7] (elements are shifted right by one index and 6 is
|
|||
|
moved to the first place).
|
|||
|
|
|||
|
The goal is to rotate array A K times; that is, each element of A will be
|
|||
|
shifted to the right K times.
|
|||
|
|
|||
|
Write a function:
|
|||
|
|
|||
|
class Solution { public int[] solution(int[] A, int K); }
|
|||
|
|
|||
|
that, given an array A consisting of N integers and an integer K, returns the
|
|||
|
array A rotated K times.
|
|||
|
|
|||
|
For example, given A = [3, 8, 9, 7, 6]
|
|||
|
K = 3
|
|||
|
|
|||
|
the function should return [9, 7, 6, 3, 8]. Three rotations were made:
|
|||
|
[3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7]
|
|||
|
[6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9]
|
|||
|
[7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8]
|
|||
|
|
|||
|
For another example, given
|
|||
|
A = [0, 0, 0]
|
|||
|
K = 1
|
|||
|
|
|||
|
the function should return [0, 0, 0]
|
|||
|
|
|||
|
Given
|
|||
|
A = [1, 2, 3, 4]
|
|||
|
K = 4
|
|||
|
|
|||
|
the function should return [1, 2, 3, 4]
|
|||
|
|
|||
|
Assume that:
|
|||
|
|
|||
|
N and K are integers within the range [0..100];
|
|||
|
each element of array A is an integer within the range [−1,000..1,000].
|
|||
|
|
|||
|
In your solution, focus on correctness. The performance of your solution will
|
|||
|
not be the focus of the assessment. Copyright 2009–2020 by Codility Limited.
|
|||
|
All Rights Reserved. Unauthorized copying, publication or disclosure
|
|||
|
prohibited.
|
|||
|
"""
|
|||
|
def solution(A, K):
|
|||
|
if len(A) in (0, 1):
|
|||
|
return A
|
|||
|
|
|||
|
for _ in range(K):
|
|||
|
A = [A[-1]] + A[:-1]
|
|||
|
return A
|