Lấy cảm hứng từ một trong những video của Vi Hart (là một kho báu chứa đầy những ý tưởng thách thức tiềm năng)
Một con rắn được tạo thành từ các đoạn có cùng độ dài và kết nối giữa mỗi đoạn có thể thẳng hoặc rẽ 90 °.
Chúng ta có thể mã hóa một con rắn như vậy (lên đến một vòng quay, phụ thuộc vào hướng ban đầu) bằng cách viết xuống một sườn , hướng quay (Thẳng / Trái / Phải). Cái này, bắt đầu ở trên cùng bên trái và chỉ về bên phải
-+ +--+ SR RSSR
| +-+ | S RSL S
+--+ --+ LSSL SSR
Sẽ được đại diện bởi slither SRSLSSLRLRSSRSRSS
Và dĩ nhiên, một con rắn phẳng không thể tự giao nhau (như trong SSSSLLLSS
), điều đó sẽ dẫn đến một Game Over pixel khủng khiếp.
Nhiệm vụ của bạn là xác định xem một slither có hợp lệ hay không (kết quả là có ít nhất một giao điểm tự)
Đầu vào
Một chuỗi được tạo từ các chữ cái SLR
với 2 < length < 10000
Đầu ra
Một cái gì đó Chân lý nếu đó là một chuỗi hợp lệ và một thứ gì đó Falsey nếu không.
Các trường hợp thử nghiệm
__Valid__
SSLSLSRSRSSRSSSLLSSSRRLRSLRLLSSS
SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR (A hilbert curve)
RLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRR
SRRSRSRSSRSSRSSSRSSSRSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS (Spiral)
SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS (bigger, squigglier spiral)
LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLL
__Invalid__
SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR
SRRLSLLRRLLSLRRSRLLRSRRLLSRSSSRSSSSSSSRSRSSSSSSSRRLLRRSRLLRSRRLSLLRRLLSLRR
SRRSRSRSSRSSRSSSRSSSRSSSSSSSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS
SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLRLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS
LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLLSLRLSLRSLRSLRSLSLSLRSRLSLRSLRLSRSLLLRLRLRRRRSLSLSSLLSLSLSLSSLLSLSLLRLRSLLRSRLSLSSLLLLSSSSSSSSSSSSSSSSSSSSRLRLLRRLRLRLLRLRLRLRLRLSSSSLSLRLLRLSLSSLSLSLSLSLRLLRLSLLLSRSSSSSSSSSSSSSSSRLRLRLLRLRLSLSRSRSSSLSRLRLRLRSLSLSLSRLLSRLSLSLSLSLSSLSLSLLSLSRLLRLRLRLRLRLRLRLRLRLRLSLSRLRLSLLRRLSLLSLSLSLSLSLLSLSLSLRLRLRLRLRLRLRLRLRLRRLRSLSLSLSLSLSLSLSSLSSSSSLSLSSSLSLSLSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Bạn có thể vẽ các thanh trượt ở đây (R và L được lật, nhưng nó không ảnh hưởng đến hiệu lực)
SRRR
trên một biểu đồ với một hình vuông trên mỗi phân đoạn thì nó sẽ trùng nhau và do đó không hợp lệ, RRR
tuy nhiên, đơn giản là sẽ chiếm chính xác một hình vuông 2x2 mà không bị chồng chéo (giống như trong trò chơi cổ điển)