Bir tamsayı dizisi düşünün:
[1, 0, 9, 1, 3, 8]
Bu listeyi ardışık alt listelere bölmenin birçok yolu vardır. İşte üç:
A: [[1, 0, 9], [1, 3, 8]]
B: [[1], [0, 9], [1, 3], [8]]
C: [[1, 0], [9, 1], [3, 8]]
Bir bölümü arayacak Y başka bölüm ve arıtmayı X eğer X alınabilir Y tekrar bir araya onun sublists bazı katılarak.
Bu B
da bir ayrıntılandırmadır A
: ilk iki ve son iki alt listeyi tekrar birleştirirsek, elde ederiz A
. Ama C
bir değil bir arıtma A
: ayrılalım olurdu 9
ve 1
kurtarmak amacıyla A
ondan. Ayrıca, herhangi bir bölüm önemsiz bir şekilde kendi geliştirmesidir.
Herhangi bir noktada alt listeleri veya öğeleri yeniden düzenlememize izin verilmediğini unutmayın.
Meydan okuma
Verilen iki bölüm (tamsayıların listesi listeleri) X
ve Y
, Y
bir ayrıntılandırma olup olmadığını belirlemek X
.
Sen bölümleri sadece gelen tamsayılar içerecektir varsayabiliriz 0
için 9
kapsayıcı. Bunu varsaymamalısınız X
ve Y
aynı listenin bölümleridirler (eğer değilse, onlar da birbirlerinin ayrıntılandırması değildir). X
ve / veya Y
boş olabilir, ancak asla boş alt listeler içermez.
STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alarak ve sonucu STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı alarak bir program veya işlev yazabilirsiniz.
Giriş herhangi bir uygun dize veya liste formatında alınabilir. Öğeler yalnızca tek basamaklı tamsayılar olacağından, alt listeler içinde bir sınırlayıcıyı atlamayı seçebilirsiniz, ancak baştaki satırların mümkün olduğundan emin olun 0
. Almayı X
ve Y
tersi sırada almayı seçebilirsiniz .
Çıktı olmalıdır truthy eğer Y
bir arıtma olduğunu X
ve falsy aksi.
Kodunuz, aşağıdaki test senaryolarının her birini makul bir masaüstü bilgisayarda 1 saniye içinde çözebilmelidir. (Bu basit kaba kuvvet çözümlerinden kaçınmak için sadece bir sağlık kontrolüdür.)
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Test Durumları
Her test senaryosu kendi satırında, olarak yazılmıştır X Y
. Bazı yatay alan kazanmak için GolfScript / CJam tarzı dizi gösterimi kullanıyorum:
Doğru:
[] []
[[0]] [[0]]
[[1 0 9 1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9 1 3 8]] [[1 0 9 1 3] [8]]
[[1 0 9 1 3 8]] [[1] [0] [9] [1] [3] [8]]
[[1 0 9] [1 3 8]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5] [1 4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
Falsy:
[[0]] []
[[0]] [[1]]
[[1 0 9]] [[1 0 9] [1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9 1 3 8]]
[[1 0 9] [1 3 8]] [[1 0 9]]
[[1 0 9] [1 3 8]] [[1 0] [9]]
[[1 0 9] [1 3 8]] [[1 0] [9 1] [3 8]]
[[1] [0 9] [1 3] [8]] [[1 0 9] [1 3 8]]
[[9 8 8 5 8 2 7] [5] [1 4] [2 0 0 6 0 8 4 2 6 4 2 3 7 8 7 3 9 5 7 9 8 2 9 5] [3 9 8] [7 1 4 9 7 4 5 9] [3 3 3] [9 0 7 8] [3 9 4 7 2 7 8 0 3 0] [8 2 2 7 3 9 3 2] [2 9 0 8 5 4 1 8 5 5 6 2 0 9 2 7 7 9 2 7] [3 6] [1 2 7 7 4 4 2 9]] [[9 8] [8] [5 8 2] [7] [5 1] [4] [2] [0 0 6] [0] [8 4 2] [6 4] [2] [3] [7 8] [7 3] [9] [5 7 9] [8 2] [9 5] [3] [9 8] [7 1 4] [9 7] [4 5 9] [3 3] [3] [9 0] [7 8] [3] [9] [4] [7 2] [7 8] [0] [3 0] [8 2] [2] [7 3] [9 3] [2] [2] [9] [0] [8 5 4] [1 8] [5 5] [6] [2 0] [9] [2] [7 7 9] [2 7] [3 6] [1 2] [7 7] [4 4 2] [9]]
Liderler
İşte hem düzenli bir skor tablosu hem de kazananları dile göre gözden geçirmek için bir Yığın Parçacığı.
Yanıtınızın göründüğünden emin olmak için, lütfen aşağıdaki Markdown şablonunu kullanarak yanıtınızı bir başlıkla başlatın:
# Language Name, N bytes
N
gönderiminizin büyüklüğü nerede . Skorunuzu yükseltirseniz, eski skorları başlığa vurarak tutabilirsiniz. Örneğin:
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 51719</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
[[[1 0 9] [1 3 8]] [[1] [0 9] [1 3] [8]]]
veya[["109" "138"] ["1" "09" "13" "8"]]
kabul edilebilir bir girdi biçimi olabilir mi?