Một con kiến đi dọc theo các cạnh (không phải mặt) của một khối khung dây. Mỗi đỉnh mà nó gặp phải trình bày nó với một ngã ba mà từ đó hai cạnh mới tách ra. Con kiến chọn cách rẽ - left
hoặc right
. Những hướng này có liên quan đến con kiến, người đang đối mặt với đỉnh và nằm ngoài khối lập phương. Mục tiêu của bạn là xác định, từ chuỗi left
/ right
lựa chọn mà con kiến đưa ra, liệu nó có kết thúc ở cùng vị trí mà nó bắt đầu hay không.
Ví dụ, nếu con kiến rẽ trái bốn lần ( left left left left
), nó sẽ đi qua một hình vuông ngược chiều kim đồng hồ và kết thúc tại cùng một nơi nó bắt đầu. Nhưng, nếu nó đi left left left left right
, nó sẽ kết thúc ở một điểm khác trên khối lập phương. Ngoài ra, nếu nó đi left right right right left
, nó kết thúc ở cạnh bắt đầu của nó nhưng phải đối mặt với đỉnh đối diện, không được tính là cùng một vị trí.
Đường đi của kiến có thể lặp lại các cạnh, bao gồm cả cạnh bắt đầu, nhưng điều quan trọng là nó kết thúc ở đâu sau toàn bộ chuỗi.
Viết một hàm được đặt tên theo chuỗi lần lượt của kiến và đưa ra liệu con kiến có trở lại vị trí bắt đầu sau chuỗi không. Việc gán một hàm không tên cho một biến là đủ để biến nó thành một hàm được đặt tên.
(Chỉnh sửa: Nếu ngôn ngữ của bạn không thể tạo chức năng được đặt tên, thay vào đó, ngôn ngữ đó có thể thực hiện chức năng với đầu vào và đầu ra thông qua STDIN / in hoặc ngăn xếp. biến.)
Đầu vào
Một chuỗi left
/ right
quyết định của chiều dài 0
để 31
bao gồm, đại diện trong một định dạng của sự lựa chọn của bạn. Đây có thể là một chuỗi các chữ cái R
/ L
, một danh sách các số 1
/ -1
hoặc một mảng Booleans. Không có gì hay ho như việc chúng là tên phương thức hoặc chuỗi hữu ích cho mã của bạn.
Vui lòng gửi các trường hợp thử nghiệm ở định dạng của bạn nếu nó khác với các trường hợp thử nghiệm bên dưới.
Đầu ra
True
/ False
, 0
/ 1
hoặc tương tự trong ngôn ngữ của bạn.
Tiêu chí chiến thắng
Ít byte nhất sẽ thắng. Hãy nhớ rằng, bạn cần đưa ra một chức năng được đặt tên. Bạn có thể có mã bên ngoài hàm, nhưng các byte đó cũng được tính. Chức năng của bạn sẽ hoạt động chính xác nếu được gọi nhiều lần.
Các trường hợp thử nghiệm
True
trường hợp (một trên mỗi dòng, thứ hai là danh sách trống):
1 1 1 1
-1 -1 -1 -1
1 -1 1 -1 1 -1
1 1 -1 -1 1 1 -1 -1
-1 1 1 -1 -1 1 1 -1
1 1 1 -1 -1 -1 -1 1
1 -1 -1 1 -1 -1
1 1 1 1 -1 -1 -1 -1 1 -1 -1 1 -1 -1
-1 -1 -1 1 -1 -1 1 1 -1 1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
False
trường hợp (một trên mỗi dòng):
1
1 1
1 1 1
-1 1
1 -1 -1 -1 1
1 -1 -1 1 1
-1 1 -1 1
1 1 1 1 -1
-1 -1 1 -1 1 -1 -1 1
1 -1 1 1 1 1 -1 -1 -1 1 1 -1 -1 -1
Đây là trường hợp thử nghiệm tương tự với L
's và R
'.
True
các trường hợp:
RRRR
LLLL
RLRLRL
RRLLRRLL
LRRLLRRL
RRRLLLLR
RLLRLL
RRRRLLLLRLLRLL
LLLRLLRRLRLRRRRRRRRRRRRRRRRR
False
các trường hợp:
R
RR
RRR
LR
RLLLR
RLLRR
LRLR
RRRRL
LLRLRLLR
RLRRRRLLLRRLLL
Thử thách tín dụng thêm
Điều tương tự, nhưng với một khối mười hai chứ không phải là một khối. Xem Hunt the Wumpus để biết ý tưởng.