Driraftort là một cách đơn giản để "sắp xếp" một mảng. Nó hoạt động bằng cách "trượt" hoặc "xoay" các phần tử trong mảng cho đến khi mảng được sắp xếp hoặc cho đến khi mảng không được sắp xếp.
Hãy đi qua hai ví dụ. Đầu tiên, hãy xem xét các mảng [10, 2, 3, 4, 7]
. Vì mảng không được sắp xếp, chúng tôi xoay nó một lần. (Điều này có thể xảy ra theo một trong hai hướng, miễn là nó vẫn giữ nguyên hướng.) Sau đó, mảng trở thành:
[7, 10, 2, 3, 4]
Điều này không được sắp xếp, vì vậy chúng tôi xoay một lần nữa.
[4, 7, 10, 2, 3]
Và một lần nữa:
[3, 4, 7, 10, 2]
Và lần cuối cùng:
[2, 3, 4, 7, 10]
Và nó đã được sắp xếp! Vì vậy, mảng [10, 2, 3, 4, 7]
là driftraftortable. Dưới đây là tất cả các phép quay của mảng, cho rõ ràng:
[10, 2, 3, 4, 7]
[7, 10, 2, 3, 4]
[4, 7, 10, 2, 3]
[3, 4, 7, 10, 2]
[2, 3, 4, 7, 10]
Hãy xem xét các mảng [5, 3, 9, 2, 6, 7]
. Nhìn vào góc quay của nó:
[5, 3, 9, 2, 6, 7]
[7, 5, 3, 9, 2, 6]
[6, 7, 5, 3, 9, 2]
[2, 6, 7, 5, 3, 9]
[9, 2, 6, 7, 5, 3]
[3, 9, 2, 6, 7, 5]
Không có mảng nào trong số này được sắp xếp, vì vậy mảng [5, 3, 9, 2, 6, 7]
không bị trôi dạt.
Mục tiêu Đưa ra một mảng / danh sách các số nguyên làm đầu vào cho một chương trình / hàm, thực hiện các bản nháp trên đầu vào và đầu ra nó, hoặc xuất ra một giá trị falsey ( hoặc một mảng / danh sách trống) nếu nó không thể bị trôi. Các số nguyên được liên kết với ngôn ngữ của bạn tối đa / phút, nhưng điều này phải có ít nhất 255 cho tối đa và 0 cho tối thiểu.
Bạn có thể sử dụng các phương pháp sắp xếp tích hợp, nhưng không phải là phương pháp tích hợp sẵn để giải quyết thách thức.
Đây là một môn đánh gôn , vì vậy chương trình ngắn nhất tính bằng byte.
Các trường hợp thử nghiệm
input => output
[1] => [1]
[5, 0, 5] => [0, 5, 5]
[3, 2, 1] => false
[0, 9, 3] => false
[1, 2, 3, 4] => [1, 2, 3, 4]
[4, 1, 2, 3] => [1, 2, 3, 4]
[0, 2, 0, 2] => false
[5, 3, 9, 2, 6, 7] => false
[0, 0, 0, 0, 0, 0, 0] => [0, 0, 0, 0, 0, 0, 0]
[75, 230, 30, 42, 50] => [30, 42, 50, 75, 230]
[255, 255, 200, 200, 203] => [200, 200, 203, 255, 255]
shiftsort
không?
shift
thao tác loại bỏ phần tử đầu tiên của một mảng.
sorted(l)
một danh sách con tiếp giáp củal+l
.