Nhiều người trong chúng ta đã quen thuộc với trò chơi Tron. Bạn điều khiển một "light Motorcycle" được đặt trên lưới. Light Light luôn di chuyển về phía trước (mặc dù bạn điều khiển hướng) và để lại dấu vết vĩnh viễn phía sau nó. Nếu bạn chạy vào một con đường mòn, bạn gặp nạn!
Mục tiêu ở đây là để xác định xem một đường dẫn cụ thể có phải là một vòng lặp hợp lệ hay không, nghĩa là nó sẽ trở về điểm bắt đầu mà không bị "sập". Để làm điều này, chúng tôi giả sử chúng tôi bắt đầu tại điểm (0,0)
. Một đầu vào được đưa ra trong biểu mẫu N2E1S2W1
, với một loạt các hướng chính ( N
is north
, E
is east
, v.v.), mỗi đầu theo sau là khoảng cách để di chuyển theo hướng đó. Trong ví dụ này, bạn sẽ đi du lịch
N2 : North 2 to (0,2)
E1 : East 1 to (1,2)
S2 : South 2 to (1,0)
W1 : West 1 to (0,0)
Một đường dẫn được coi là hợp lệ nếu nó kết thúc tại (0,0)
mà không truy cập bất kỳ tọa độ nào khác nhiều lần (nó truy cập (0,0)
chính xác hai lần. Một lần khi bắt đầu và một lần ở cuối). Hãy ghi nhớ hơn trong ví dụ trên, để đi từ (0,0)
đến (0,2)
, chúng tôi nhất thiết phải ghé thăm (0,1)
.
Những ví dụ khác:
input -> output
N1E1S1W1 -> true
N1E1N1E1S2W2 -> true
N1S1E1W1 -> false // Visits (0,0) 3 times
N4E2S2W4S2E2 -> false // Visits (0,2) twice
N3E2S3 -> false // Does not return to (0,0)
N1S1 -> anything //I don't care how you evaluate this case
Đầu ra của bạn có thể ở bất kỳ dạng nào miễn là nó cho cùng một đầu ra cho bất kỳ giá trị trung thực hoặc falsey nào.
Đầu vào có thể được lấy dưới dạng chuỗi hoặc dưới dạng danh sách các ký tự, ở dạng S1N2E3
... hoặc SNNEEE
... Cũng không có giới hạn cứng đối với kích thước lưới, nhưng giả sử đầu vào sẽ không tràn ra bất cứ thứ gì. Miễn là mã cơ bản là đúng, thì việc xử lý các trường hợp như thế là không quan trọng N99999999999999
.
Chú ý: Bạn có thể đánh giá các trường hợp N1S1
, E1W1
, S1N1
, và W1E1
tuy nhiên bạn muốn. Chúng là những con đường hợp lệ về mặt kỹ thuật, nhưng chúng đi ngược lại tinh thần "Tron" của thử thách.
Chấm điểm
Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất sẽ thắng!
N
như 1j
, E
như 1
, S
như -1j
, và W
như -1
?
N99999999999999
N1S1
phải đúng để phù hợp với định nghĩa của bạn bởi vì nó đạt đến(0, 0)
hai lần và(0, 1)
một lần, điều này hợp lệ theo định nghĩa của bạn.