Geçiş Dizileri
Pozitif tamsayıların bir listesi verildiğinde A
, her bir eleman bir öncekinden büyük veya ona eşitse ona artan bir sekans adı verin ; ve her öğenin öncekinden küçük veya ona eşit olması durumunda buna azalan bir dizi denir .
Bazı artan sekanslar:
[1,2,4,7]
[3,4,4,5]
[2,2,2]
[]
Bazı azalan diziler:
[7,4,2,1]
[5,4,4,3]
[2,2,2]
[]
Bir kesişme dizisi , biri artan bir dizi ve diğeri azalan bir dizi olmak üzere iki ayrık alt diziye ayrılabilen bir listedir.
Örneğin, liste:
[3,5,2,4,1]
bir geçiş dizisidir, çünkü içine ayrıştırılabilir:
[3, 4 ]
[ 5,2, 1]
[3,4]
artan sekans nerede ve [5,2,1]
azalan sekans. Böyle bir çift (artan, azalan) alt diziyi geçiş sırasının ayrışması olarak adlandıracağız.
Liste:
[4,5,2,1,3]
bir geçiş sırası değildir; giderek artan ve azalan bir alt diziye ayrışmanın bir yolu yoktur.
Göreviniz girdi olarak pozitif tamsayıların bir listesini alan bir program / işlev yazmaktır; ve eğer bir geçiş sırası ise, iki listeyi ayrışmalarından birinde döndürün; veya liste bir geçiş sırası değilse tutarlı bir "falsey" değeri içerebilir.
Bu kod golfü ; her dilde en kısa program / fonksiyon kazanır.
Kurallar:
- Giriş esnektir.
- Her zamanki boşluklar yasaktır.
- Girişi ayrıştırmanın birden çok geçerli yolu varsa, bunlardan birini veya tümünü çıktısını alabilirsiniz.
- Ayrışma için çıktı biçimlendirmesi esnektir; ancak iki alt sekans arasındaki ayrım konusunda açık olmalıdır.
- Girişin bir geçiş sırası olmadığını belirtmek için herhangi bir tutarlı çıkış değeri kullanabilirsiniz; herhangi bir geçiş dizisinin çıktısına kıyasla açık olmadığı sürece. Cevabınızda falsey değerini belirtmelisiniz.
Test Durumları:
False
Geçiş yapmayan dizileri belirtmek için kullanma :
[3, 5, 2, 4, 1] => [3, 4], [5, 2, 1]
[3, 5, 2, 4, 4, 1, 1] => [3, 4, 4], [5, 2, 1, 1]
[7, 9, 8, 8, 6, 11] => [7, 8, 8, 11], [9, 6]
[7, 9, 8, 8, 6, 11] => [7, 9, 11], [8, 8, 6] # also valid
[7, 9, 8, 8, 6, 11] => [7, 8, 11], [9, 8, 6] # also valid
[7, 8, 9, 10, 20, 30] => [7, 8, 9, 20, 30], [10]
[7, 8, 9, 10, 20, 30] => [8, 9, 10, 20, 30], [7] # this is also valid
[5, 5, 5] => [5, 5, 5], []
[4, 5, 2, 1, 3] => False
[3, 4, 3, 4, 5, 2, 4] => False
[3, 5, 2, 4, 4, 1, 1]
. Mevcut test senaryoları, >=
/ ile <
gerçekten ne zaman olması gerektiğini ortadan >=
kaldırmanızı sağlar <=
.