Birçoğumuz Tron oyununa aşinayız. Bir ızgara üzerine yerleştirilmiş bir "hafif bisiklet" kontrol. Hafif bisiklet her zaman ileriye doğru hareket eder (yönü kontrol etmenize rağmen) ve arkasında kalıcı bir iz bırakır. Bir patikaya girerseniz, kaza yaparsınız!
Buradaki amaç, belirli bir yolun geçerli bir döngü olup olmadığını belirlemektir, yani "çökmeden" başlangıç noktasına geri döner. Bunu yapmak için, noktadan başladığımızı varsayıyoruz (0,0)
. Formda N2E1S2W1
, her biri bir yönde kardinal yönler ( N
is north
, E
is east
vb.) İle bir giriş verilir , ardından her biri bu yönde hareket mesafesi. Bu örnekte,
N2 : North 2 to (0,2)
E1 : East 1 to (1,2)
S2 : South 2 to (1,0)
W1 : West 1 to (0,0)
Bir yol, (0,0)
başka bir koordinatı birden fazla ziyaret etmeden bitiyorsa geçerli sayılır ( (0,0)
tam olarak iki kez ziyaret eder. Bir kez başlangıçta ve sonunda bir kez). Almak, yukarıdaki örnekte daha Unutmayın (0,0)
için (0,2)
biz mutlaka ziyaret (0,1)
de.
Diğer örnekler:
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
Çıktınız, herhangi bir doğruluk veya falsey değeri için aynı çıktıyı verdiği sürece herhangi bir biçimde olabilir.
Girdi, bir dize olarak ya da bir karakter listesi olarak alınabilir, ya formda S1N2E3
... ya da SNNEEE
... Izgara boyutunda da sabit bir sınır yoktur, ancak girdinin hiçbir şey taşmayacağını varsayalım. Kod temel olarak sağlam olduğu sürece, bu gibi durumları ele almak çok önemli değildir N99999999999999
.
NOT: vakaları değerlendirebilir N1S1
, E1W1
, S1N1
, ve W1E1
bununla birlikte istiyorum. Teknik olarak geçerli yollar, ancak mücadelenin “Tron” ruhuna karşı çıkıyorlar.
puanlama
Bu kod golf , bu yüzden en kısa cevap kazanır!
N
kadar 1j
, E
kadar 1
, S
olarak -1j
, ve W
sıra -1
?
N99999999999999
N1S1
tanımlarınızla tutarlı olmak için doğru olmalıdır, çünkü tanımınız altında geçerli olan(0, 0)
iki ve bir(0, 1)
kez ulaşır .