Terinspirasi oleh salah satu video Vi Hart (yang merupakan harta karun yang penuh dengan ide tantangan potensial)
Seekor ular terdiri dari segmen dengan panjang yang sama dan koneksi antara masing-masing segmen bisa lurus atau berbelok 90 °.
Kita dapat menyandikan ular seperti itu (hingga rotasi, yang tergantung pada arah awal) dengan menuliskan slither , arah belokan (Lurus / Kiri / Kanan) yang diperlukan. Yang ini, mulai dari kiri atas dan menunjuk ke kanan
-+ +--+ SR RSSR
| +-+ | S RSL S
+--+ --+ LSSL SSR
Akan diwakili oleh meluncur SRSLSSLRLRSSRSRSS
Dan tentu saja ular planar tidak dapat memotong dirinya sendiri (seperti di SSSSLLLSS
), yang akan menghasilkan Game Over pixelated mengerikan.
Tugas Anda adalah menentukan apakah slither valid atau tidak (menghasilkan setidaknya satu persimpangan-sendiri)
Input
Sebuah string yang terbuat dari huruf SLR
dengan 2 < length < 10000
Output
Something Truthy jika itu adalah slither yang valid dan sesuatu Falsey jika tidak.
Uji kasus
__Valid__
SSLSLSRSRSSRSSSLLSSSRRLRSLRLLSSS
SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR (A hilbert curve)
RLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRRSRLLRSRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLSSLLRSRRLLRR
SRRSRSRSSRSSRSSSRSSSRSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS (Spiral)
SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS (bigger, squigglier spiral)
LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLL
__Invalid__
SRRLSLLRRLLSLRRSRLLRSRRLLRRSRLLLLRSRRLLRRSRLLRSRRLSLLRRLLSLRR
SRRLSLLRRLLSLRRSRLLRSRRLLSRSSSRSSSSSSSRSRSSSSSSSRRLLRRSRLLRSRRLSLLRRLLSLRR
SRRSRSRSSRSSRSSSRSSSRSSSSSSSSSSRSSSSRSSSSSRSSSSSRSSSSSSRSSSSSSRSSSSSS
SSSSSSSSSSLSSSSSSSLSSSSSSSSLSSSSSLSSSSSSLSSSLLRRLRLRRLLSLSSSRRSSSSRSSSRSSSSSSRSSSSSRSSSSSSSSRSSSSSSSRSSSSSSSSS
LRSLLRLSRSLLSRLSLRSLSSSLRRSSLSRRLRSRLRLSLRLLRLRSSLSLRLRSRSSSSSLSRRLSLSSSRRLRLRLRLRRLLSSLSSSRRLRLRLRLRLSLSSSSSSSSSSSSSRLRLLRLRLRLRLRLRLRLSLSSSLSLSLLSLRLSLRSLRSLRSLSLSLRSRLSLRSLRLSRSLLLRLRLRRRRSLSLSSLLSLSLSLSSLLSLSLLRLRSLLRSRLSLSSLLLLSSSSSSSSSSSSSSSSSSSSRLRLLRRLRLRLLRLRLRLRLRLSSSSLSLRLLRLSLSSLSLSLSLSLRLLRLSLLLSRSSSSSSSSSSSSSSSRLRLRLLRLRLSLSRSRSSSLSRLRLRLRSLSLSLSRLLSRLSLSLSLSLSSLSLSLLSLSRLLRLRLRLRLRLRLRLRLRLRLSLSRLRLSLLRRLSLLSLSLSLSLSLLSLSLSLRLRLRLRLRLRLRLRLRLRRLRSLSLSLSLSLSLSLSSLSSSSSLSLSSSLSLSLSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Anda dapat menggambar slithers di sini (R dan L terbalik, tetapi itu tidak mempengaruhi validitas)
SRRR
pada kertas grafik dengan satu kotak per segmen maka itu akan tumpang tindih dan karena itu tidak valid RRR
, akan tetapi, akan menempati tepat 2x2 persegi tanpa tumpang tindih (seperti dalam game klasik)