Bir karınca bir tel kafes küpünün kenarları (yüzleri değil) boyunca yürür. Karşılaştığı her köşe, iki yeni kenarın daldığı bir çatalla ortaya çıkıyor. Karınca hangi yöne döneceğini seçer - left
veya right
. Bu yön, tepe noktasına bakan ve küpün dışındaki karıncaya göredir. Amacınız , karıncanın aldığı left
/ right
seçimler sırasından, başladığının aynı pozisyonda bitip bitmediğini belirlemektir.
Örneğin, karınca dört kez sola dönerse ( left left left left
), saat yönünün tersine bir kare boyunca dolanır ve başladığı yerde biter. Ancak, giderse left left left left right
, küpte farklı bir noktada sona erecek. Ayrıca, eğer giderse left right right right left
, başlangıç kenarında biter ancak aynı pozisyonda sayılmayan zıt tepe noktasına bakar.
Karınca yolu, başladığı kenar da dahil olmak üzere kenarları tekrarlayabilir, ancak önemli olan bütün dizilimden sonra nerede bittiğidir.
Karınca sıralarına giren ve karınca sıradan sonra başlangıç pozisyonuna gelip gelmediğini gösteren adlandırılmış bir fonksiyon yazın . Bir değişkene adlandırılmamış bir işlev atamak, onu adlandırılmış bir işlev yapmak için yeterlidir.
(Düzenleme: Diliniz adlandırılmış bir işlev yapamıyorsa, işlevi yerine STDIN / printing veya yığın yoluyla giriş ve çıkışlar uygulayabilir. Bu mümkün değilse, giriş ve çıkışın kaydedildiği bir pasajı yapın. değişkenler.)
Giriş
Dizisi left
/ right
uzunluk kararlarına 0
karşı 31
seçtiğiniz bir biçimde temsil dahil,. Bu bir harf dizisi R
/ L
, bir sayı listesi 1
/ -1
veya bir Boole dizisi olabilir. Sevimsiz hiçbir şey onları kodunuz için yararlı yöntem adları veya dizeleri olması gibi bir şey.
Lütfen aşağıdaki test senaryolarından farklı ise, test senaryolarını formatınıza gönderin.
Çıktı
True
/ False
, 0
/ 1
veya sizin dilinizdeki analogları.
Kazanan kriterler
En az bayt kazanır. Unutma, adlandırılmış bir işlev vermen gerekir. İşlevin dışında kodunuz olabilir, ancak bu baytlar da sayılır. Birden çok kez aranıyorsa, işleviniz doğru şekilde davranmalıdır.
Test durumları
True
servis talepleri (satır başına bir tane, ikincisi boş bir listedir):
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
durumlar (satır başına bir):
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
İşte L
's R
' ve s ile aynı test vakaları .
True
durumlar:
RRRR
LLLL
RLRLRL
RRLLRRLL
LRRLLRRL
RRRLLLLR
RLLRLL
RRRRLLLLRLLRLL
LLLRLLRRLRLRRRRRRRRRRRRRRRRR
False
durumlar:
R
RR
RRR
LR
RLLLR
RLLRR
LRLR
RRRRL
LLRLRLLR
RLRRRRLLLRRLLL
Ekstra kredi mücadelesi
Aynı şey, ama bir küp yerine bir on iki parmaklı ile . Fikirler için Wumpus Avını görün .