Thử thách này có liên quan đến Flipping Pancakes .
Bạn có thể đã nghe nói về việc sắp xếp bánh kếp , trong đó một chồng bánh được sắp xếp theo kích cỡ bằng cách chèn thìa vào chồng và lật tất cả các bánh trên thìa, cho đến khi bánh được sắp xếp nhỏ nhất đến lớn nhất trên đĩa. Các vấn đề pancake bị cháy là hơi khác nhau. Tất cả các bánh kếp bây giờ đều có một mặt bị cháy, và mặt bị cháy của mỗi bánh phải đối mặt với đĩa sau khi quá trình phân loại được hoàn thành.
Ví dụ, được đưa ra ngăn xếp sau (kích thước của bánh kếp ở bên trái. Có 0
nghĩa là mặt bị cháy xuống và 1
có nghĩa là mặt bị cháy ở phía bên phải):
1 0
3 1
2 1
Bạn có thể lật toàn bộ ngăn xếp để lấy 20 30 11
, lật hai cái trên cùng để lấy 31 21 11
và lật lại toàn bộ ngăn xếp để lấy 10 20 30
, một chồng bánh xèo được sắp xếp. Chuỗi di chuyển này, lật 3, lật 2, lật 3, có thể được biểu diễn dưới dạng 3 2 3
.
Các thách thức
- Đưa ra một loạt các kích cỡ bánh kếp (không nhất thiết là duy nhất) và định hướng của chúng, đưa ra bất kỳ trình tự sắp xếp bánh xèo hợp lệ nào, nghĩa là một chuỗi các lần lật dẫn đến chồng bánh được sắp xếp từ nhỏ nhất đến lớn nhất với các mặt bị cháy xuống.
- Đầu vào và đầu ra có thể là bất kỳ định dạng lành mạnh nào có dấu phân cách, nhưng vui lòng chỉ định định dạng bạn sử dụng và nêu rõ phần cuối của định dạng đầu vào của bạn là đỉnh của ngăn xếp (ĐKDV).
- Lật bánh không được cho phép.
- Trộn dải phân cách trong đầu vào / đầu ra được cho phép.
Các trường hợp thử nghiệm
Đối với tất cả các trường hợp kiểm tra sau, đầu vào là danh sách và đầu ra là một chuỗi được phân tách bằng dấu cách và TOS nằm ở bên trái.
[[1, 0], [3, 1], [2, 1]]
"3 2 3"
[[5, 1], [3, 0], [4, 1], [2, 1], [1, 0]]
"5 3 4 1 3 2 1"
[[5, 1], [3, 0], [3, 0], [1, 1]]
"4 3 2 3"
Như mọi khi, nếu bất cứ điều gì không rõ ràng hoặc không chính xác, xin vui lòng cho tôi biết trong các ý kiến. Chúc may mắn và chơi golf tốt!