Bỏ qua như một con thỏ!


41

Đưa ra một danh sách các số nguyên không âm ở bất kỳ định dạng hợp lý nào, lặp lại nó, bỏ qua nhiều phần tử như mọi số nguyên bạn bước vào.


Đây là một ví dụ hoạt động:

[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | []
 ^ First element, always include it
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0]
    ^ Skip 0 elements
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1]
          ^ Skip 1 element
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1, 2]
                   ^ Skip 2 elements
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1, 2, 3]
Skip 3 elements; you're done

Một ví dụ hoạt động khác, không hoàn toàn bằng nhau - deltas:

[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | []
 ^ First element, always include it
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4]
                ^ Skip 4 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3]
                            ^ Skip 3 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3, 3]
                                        ^ Skip 3 elements
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] | [4, 3, 3, 4]
Skip 4 elements; you're done

Một ví dụ ngoài giới hạn:

[0, 2, 0, 2, 4, 1, 2] | []
^ First element, always include it
[0, 2, 0, 2, 4, 1, 2] | [0]
    ^ Skip 0 elements
[0, 2, 0, 2, 4, 1, 2] | [0, 2]
             ^ Skip 2 elements
[0, 2, 0, 2, 4, 1, 2] | [0, 2, 4]
Skip 4 elements; you're done (out of bounds)

Quy tắc

  • Bạn không thể sử dụng bất kỳ mánh gian lận nhàm chán nào trong số này , chúng làm cho thử thách trở nên nhàm chán và không thú vị.
  • Bạn chỉ nên trả lại / in kết quả cuối cùng. Đầu ra STDERR bị bỏ qua.
  • Bạn không thể lấy đầu vào dưới dạng một chuỗi chữ số trong bất kỳ cơ sở nào (ví dụ: "0102513162" cho trường hợp đầu tiên).
  • Bạn phải sử dụng thứ tự từ trái sang phải cho đầu vào.
  • Như trong các ví dụ đã làm việc, nếu bạn đi ra khỏi giới hạn, việc thực thi chấm dứt như thể khác.
  • Bạn nên sử dụng 0để bỏ qua 0 phần tử.
  • Đưa ra danh sách trống ( []) làm đầu vào, bạn nên trả về [].

Các trường hợp thử nghiệm

[]                                                     => []
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]                     => [0, 1, 3, 7]
[5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0]                   => [5, 2, 1, 0]
[0, 1, 0, 2, 5, 1, 3, 1, 6, 2]                         => [0, 1, 2, 3]
[4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2] => [4, 3, 3, 4]
[0, 2, 0, 2, 4, 1, 2]                                  => [0, 2, 4]

Đây là , vì vậy câu trả lời ngắn nhất sẽ thắng!


1
Có ổn không khi có các số 0 ở cuối mảng của tôi? sẽ tiết kiệm cho tôi ~ 18 byte
Roman Gräf

@EriktheOutgolfer Chúng ta có thể xuất ra một chuỗi chuỗi và có các chuỗi rỗng không?
TheLethalCoder

1
@TheLethalCoder Xin lỗi tôi nói không vì điều đó không hợp lý ... bạn không thể xóa dấu vết ""?
Erik the Outgolfer 28/07/17

2
@ RomanGräf Xin lỗi nhưng không, điều đó sẽ quá mơ hồ vì có những trường hợp bạn nên có dấu 0ở đầu ra.
Erik the Outgolfer 28/07/17

Câu trả lời:


14

Python 2 , 36 byte

f=lambda x:x and x[:1]+f(x[x[0]+1:])

Hãy thử trực tuyến!


Tôi đã mong đợi để vượt qua, nhưng không đến nỗi như vậy :)
Ông Xcoder

Bạn không thể làm x[0]thay vì x[:1]?
Erik the Outgolfer 28/07/17

@EriktheOutgolfer có, nhưng nó cần phải là một danh sách, vì vậy nó sẽ là[x[0]]
Rod

@Rod Bạn không lưu bất kỳ byte nào bằng mọi cách x[:1]...f=lambda x:x and[x[0]]+f(x[x[0]+1:])
Erik the Outgolfer 28/07/17

13

Python 2 , 49 44 * 41 byte

Vượt qua 44 vẫn là thường xuyên 44 :(

* -3 chỉ nhờ @ ASCII .

l=input()
while l:print l[0];l=l[l[0]+1:]

Hãy thử trực tuyến!

In các kết quả được phân tách bằng một dòng mới, như OP cho phép trong trò chuyện. Tôi không nghĩ rằng nó có thể ngắn hơn như một chương trình đầy đủ không đệ quy .


Cái này hoạt động ra sao?

  • l=input() - Đọc danh sách từ đầu vào tiêu chuẩn.

  • while l: - Lạm dụng thực tế là các danh sách trống bị giả mạo trong Python, các vòng lặp cho đến khi danh sách trống.

  • print l[0]; - In phần tử đầu tiên của danh sách.

  • l=l[l[0]+1:]- "Bỏ qua như một con thỏ" - Cắt đầu tiên l[0]+1từ danh sách.

Hãy lấy một ví dụ

Đưa ra danh sách [5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0]làm đầu vào, mã thực hiện như sau (theo giải thích ở trên) - In mục đầu tiên của mảng : 5, cắt 6 đầu tiên : [2, 1, 2, 1, 0, 0]. Sau đó chúng tôi in 2và cắt 3 đầu tiên : [1,0,0]. Tương tự như vậy, chúng tôi đầu ra 1, cắt 2 đầu tiên, và chúng tôi nhận được [0]. Tất nhiên, 0được in và chương trình chấm dứt.




9

JavaScript (ES6), 42 39 35 byte

a=>a.map((n,i)=>a.splice(i+1,n))&&a

let f = 
a=>a.map((n,i)=>a.splice(i+1,n))&&a

console.log(f([]))                                                     // => []
console.log(f([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))                     // => [0, 1, 3, 7]
console.log(f([5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0]))                   // => [5, 2, 1, 0]
console.log(f([0, 1, 0, 2, 5, 1, 3, 1, 6, 2]))                         // => [0, 1, 2, 3]
console.log(f([4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2])) // => [4, 3, 3, 4]
console.log(f([0, 2, 0, 2, 4, 1, 2]))                                  // => [0, 2, 4]

Giải pháp cũ 39 byte

a=>a.map(n=>i--||r.push(i=n),r=i=[])&&r

-3 byte nhờ @ThePirateBay


39 bytea=>a.map(n=>i--||r.push(i=n),r=i=[])&&r


8

Toán học, 46 44 byte

SequenceCases[#,{x_,y___}/;Tr[1^{y}]<=x:>x]&

Lựa chọn thay thế:

SequenceCases[#,{x_,y___}/;x>=Length@!y:>x]&
SequenceCases[#,l:{x_,___}/;x>Tr[1^l]-2:>x]&

7

C #, 68 byte

a=>{for(int i=0;i<a.Count;i+=a[i]+1)System.Console.Write(a[i]+" ");}

Hãy thử trực tuyến!

Phiên bản đầy đủ / được định dạng:

namespace System
{
    class P
    {
        static void Main()
        {
            Action<Collections.Generic.List<int>> f = a =>
            {
                for (int i = 0; i < a.Count; i += a[i] + 1)
                    System.Console.Write(a[i] + " ");
            };

            f(new Collections.Generic.List<int>() { });Console.WriteLine();
            f(new Collections.Generic.List<int>() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });Console.WriteLine();
            f(new Collections.Generic.List<int>() { 5, 1, 2, 3, 4, 5, 2, 1, 2, 1, 0, 0 });Console.WriteLine();
            f(new Collections.Generic.List<int>() { 0, 1, 0, 2, 5, 1, 3, 1, 6, 2 });Console.WriteLine();
            f(new Collections.Generic.List<int>() { 4, 5, 1, 3, 8, 3, 0, 1, 1, 3, 1, 2, 7, 4, 0, 0, 1, 2 });Console.WriteLine();
            f(new Collections.Generic.List<int>() { 0, 2, 0, 2, 4, 1, 2 });Console.WriteLine();

            Console.ReadLine();
        }
    }
}

Trả về một danh sách dài hơn ở 107 byte.

a=>{var l=new System.Collections.Generic.List<int>();for(int i=0;i<a.Count;i+=a[i]+1)l.Add(a[i]);return l;}

2
Tại sao có ai đó đánh giá thấp điều này?
TheLethalCoder

Để làm tròn số điểm của bạn và kiếm được 5k hoàn hảo?
Thomas Ayoub

@ThomasAyoub Chúng tôi chỉ có thể giả sử đó là người bị OCD.
TheLethalCoder

6

Husk , 8 6 byte

←TU¡Γ↓

Hãy thử trực tuyến!

-2 byte (và một ý tưởng giải pháp hoàn toàn mới) nhờ Leo!

Giải trình

Tôi đang sử dụng chức năng khớp mẫu danh sách Γ. Nó có một chức năng fvà một danh sách với đầu xvà đuôi xs, và áp dụng fcho xxs. Nếu danh sách trống, Γtrả về giá trị mặc định phù hợp với loại của nó, trong trường hợp này là danh sách trống. Chúng tôi có fđược , mà giảm xcác yếu tố từ xs. Hàm này sau đó được lặp lại và các phần tử kết quả được thu thập trong một danh sách.

←TU¡Γ↓  Implicit input, e.g. [0,2,0,2,4,1,2]
    Γ↓  Pattern match using drop
   ¡    iterated infinitely: [[0,2,0,2,4,1,2],[2,0,2,4,1,2],[4,1,2],[],[],[],...
  U     Cut at first repeated value: [[0,2,0,2,4,1,2],[2,0,2,4,1,2],[4,1,2],[]]
 T      Transpose: [[0,2,4],[2,0,1],[0,2,2],[2,4],[4,1],[1,2],[2]]
←       First element: [0,2,4]

Bạn có thể bỏ giá trị mặc định của ø và mọi thứ sẽ vẫn hoạt động một cách kỳ diệu :)
Leo


@Leo Ôi chà, thật là thông minh!
Zgarb

Tại sao bạn CW này?
Erik the Outgolfer 28/07/17

@ErikTheOutgolfer Đó là một sai lầm (Tôi đang sử dụng điện thoại và dường như đã vô tình đẩy thứ gì đó). Tôi đang cố gắng hoàn tác nó ...
Zgarb


5

Bình, 22 byte

VQ aY.(Q0VeY .x.(Q0 ;Y

Đã xóa một byte vô dụng


Tôi thấy 23 byte ở đó.
Erik the Outgolfer 28/07/17

Typo :) xin lỗi ...
Dave

3
Tôi không chắc tại sao bạn lại bỏ phiếu. Có khả năng là khi bạn chỉnh sửa sửa câu trả lời của mình, điều này đã kích hoạt "bỏ phiếu tự động". Những lý do cho downvote tự động này là khó hiểu và khủng khiếp nhưng nó sẽ xảy ra nếu hệ thống coi câu trả lời của bạn là "chất lượng thấp" dựa trên heuristic. Cũng có thể ai đó không thích câu trả lời của bạn, nhưng tôi không thấy có gì sai với nó vào lúc này vì vậy tôi không chắc tại sao lại như vậy.
Phù thủy lúa mì

Tôi rất vui vì bạn đang sử dụng Pyth!
isaacg


3

Võng mạc , 36 byte

Số lượng byte giả định mã hóa ISO 8859-1.

.+
$*
((1)*¶)(?<-2>1*¶)*
$1
%M`.
0$

Đầu vào và đầu ra được phân tách bằng nguồn cấp dữ liệu với một dòng cấp dữ liệu.

Hãy thử trực tuyến! (Sử dụng dấu phẩy thay vì nguồn cấp dữ liệu để cho phép các bộ kiểm tra thuận tiện.)


3

Brain-Flak , 64 byte

([]){{}(({})<>)<>{({}[()]<{}>)}{}([])}{}<>([]){{}({}<>)<>([])}<>

Hãy thử trực tuyến!

([]){{}                          ([])}{}                         # Until the stack is empty
       (({})<>)<>                                                # Copy TOS to off stack
                 {({}[()]<{}>)}{}                                # Pop TOS times
                                        <>([]){{}({}<>)<>([])}<> # Reverse off stack

7
Chúa ơi! Tôi đã viết lên một giải pháp, và sau đó cuộn xuống để đăng nó, nhưng hóa ra chúng tôi đã viết chính xác cùng một giải pháp cho từng byte! Ngay cả những chi tiết nhỏ như ({}[()]<{}>)vs ({}<{}>[()])cũng vậy! Thật là một sự trùng hợp!
DJMcMayhem

@DJMcMayhem ăn cắp tất cả danh tiếng XD
Christopher

Tôi cũng đã tạo một byte cho giải pháp giống hệt byte, nhưng tôi đã đánh nó xuống 4 byte . Chỉ là một số cạnh tranh bị trì hoãn :)
Wheat Wizard

2

Toán học, 64 50 byte

±x_List:=Prepend[±Drop[x,1+#&@@x],#&@@x]
±_=±{}={}

Tôi không thể cưỡng lại việc đánh gôn thêm mã gọn gàng này; Câu trả lời của tôi dưới đây.
Mr.Wizard

2

C # (.NET Core) , 68 byte

n=>{var t="";for(int i=0;i<n.Length;i+=n[i]+1)t+=n[i]+" ";return t;}

Hãy thử trực tuyến!

Lấy đầu vào dưới dạng một mảng các số nguyên, trả về một chuỗi chứa các giá trị không được bỏ qua.


Cách tốt đẹp để làm điều đó và đi vào cùng một tính như in.
TheLethalCoder

Tôi yêu các giải pháp đơn giản. Vẫn phải học LINQ, vì tôi đã thấy rằng rút ngắn rất nhiều c # lambdas ..
jkelm

Rút ngắn nó bởi vì bạn có thể ngầm trả lại hầu hết thời gian. Mặc dù đó là một sự thay đổi giữa trả lại ngầm với using System.Linq;và một vòng lặp bình thường.
TheLethalCoder

2

R, 58 byte

f=function(x,p=1){cat(z<-x[p]);if(p+z<sum(x|1))f(x,p+z+1)}

Hàm đệ quy. Lấy một vectơ xlàm đối số và giới thiệu một con trỏ p. Điều này in ra mục tương ứng của x, kiểm tra nếu p+x[p]đi ra khỏi giới hạn và nếu không, gọi hàm cho con trỏ mới.

f=function(x,p=1,s=x[1])`if`((z<-x[p]+p+1)>sum(x|1),s,f(x,z,c(s,x[z])))

Đây là một giải pháp tương đương trả về một vectơ thích hợp thay vì in các chữ số.


một đầu vào của numeric(0)? aka mảng trống.
Giuseppe

@Giuseppe Tôi sẽ xem nó khi tôi đứng sau máy tính của tôi
JAD


2

Java (OpenJDK 8) , 53 byte

Cảm ơn @ PunPun1000 và @TheLethalCoder

a->{for(int n=0;;n+=1+a[n])System.out.println(a[n]);}

Hãy thử trực tuyến!


In kết quả, như trong câu trả lời C # của tôi, có giúp bạn tiết kiệm được gì không?
TheLethalCoder

@TheLethalCoder Ill thử
Roman Gräf

Bạn có thể lưu một byte bằng cách di chuyển nvào vòng lặp?
TheLethalCoder

Thêm vào đó, điều này dường như không hoạt động vào lúc này.
TheLethalCoder

Bạn đang thiếu một paren sau (a[n+=1+a[n]]. Hàm cũng đưa ra lỗi sau khi xuất giá trị chính xác, tôi không biết sự đồng thuận về việc liệu điều này có được phép hay không (câu hỏi không nói gì đến lỗi tiêu chuẩn được bỏ qua). Nếu đó là ý định, thì bạn có thể loại bỏ n<a.lengthvòng lặp for. Cuối cùng, mã TIO không chạy như vậy, ngay cả với paren. Chức năng nên là một Consumer<int[]>và sử dụngfunc.accept(test)
PunPun1000

2

Alice , 15 byte

/$.. \h&
\I@nO/

Hãy thử trực tuyến!

Nhập và xuất một danh sách các số nguyên thập phân được phân tách bằng nguồn cấp.

Giải trình

/   Switch to Ordinal mode.
I   Read a line.
.   Duplicate it.
n   Logical NOT (gives truthy if we're at EOF).
/   Switch to Cardinal.
    The IP wraps around to the left.
\   Switch to Ordinal.
$@  Terminate the program if we're at EOF.
.   Duplicate the input line again.
O   Print it.
\   Switch to Cardinal.
h   Increment the value.
&   Store the result in the iterator queue.
    The program wraps around to the beginning.

Lưu trữ một số nguyên n trong hàng đợi lặp khiến lệnh tiếp theo được thực thi n lần. Gương như /không phải là lệnh, vì vậy lệnh tiếp theo sẽ là I. Do đó, nếu chúng ta chỉ đọc và in một giá trị x , chúng ta sẽ đọc các giá trị x + 1 ở lần lặp tiếp theo, với lần cuối cùng kết thúc ở trên cùng của ngăn xếp. Điều này bỏ qua các yếu tố danh sách số yêu cầu.


2

Toán học , 37 (30?)

Tiếp tục chơi golf theo phương pháp tốt của user202729.

±{a_,x___}={a}~Join~±{x}~Drop~a
±_={}

Các quy tắc dường như không chỉ định rõ ràng định dạng đầu ra, vì vậy có thể:

±{a_,x___}=a.±{x}~Drop~a
±_={}

Đầu ra cho hàm thứ hai trông giống như: 0.2.4.{}- đáng chú ý {}vẫn được trả về cho một tập hợp trống, tuân theo quy tắc cuối cùng.


1
±Drop[{x},a]có thể ±{x}~Drop~a±có độ ưu tiên thấp hơn Infix.
JungHwan Min

@JungHwanMin Tôi đã bỏ lỡ điều đó; cảm ơn!
Mr.Wizard


2

Brain-Flak , 64 60 byte

Lưu 4 byte dựa trên một ý tưởng từ 0 '

([]){{}(({})<>())<>{({}[()]<{}>)}{}([])}{}<>{({}[()]<>)<>}<>

Hãy thử trực tuyến!

Chú thích

([]){{}            #{Until the stack is empty}
  (({})<>())<>     #{Put n+1 to the offstack}
  {({}[()]<{}>)}{} #{Remove n items from the top}
([])}{}            #{End until}
<>                 #{Swap stacks}
{({}[()]<>)<>}<>   #{Move everything back onto the left stack decrementing by 1}


1

Python 2.4, 85 byte

Không có cơ hội để chiến thắng con trăn với nó, nhưng tôi yêu thích oneliners và điều này có thể thú vị với những người khác.
Hóa ra, có một trò ảo thuật lạ mắt để truy cập danh sách xây dựng bên trong sự hiểu biết, nhưng nó chỉ hoạt động trong 2.4 và với một số chỉnh sửa trong <= 2.3
locals()['_[1]']. Python tạo tên bí mật _[1]cho danh sách, trong khi nó được tạo và lưu trữ nó locals. Ngoài ra tên _[2], _[3]... được sử dụng cho danh sách lồng nhau.

lambda n:[j for i,j in enumerate(n)if i==len(locals()['_[1]'])+sum(locals()['_[1]'])]

Vì vậy, nó đếm số phần tử đã được thêm vào cộng với tổng của chúng. Kết quả là chỉ số của yếu tố mong muốn tiếp theo.
Tôi nghĩ rằng, nên có một cách để tránh liệt kê. Giống như truy cập mảng đầu vào trực tiếp theo chỉ mục : [ n[len(locals()['_[1]'])+sum(locals()['_[1]'])] for ... ]. Nhưng tôi không thể tìm ra một cách nhỏ gọn để bảo vệ nó khỏi phạm vi chỉ mục (trong khi vẫn giữ nó trên máy chủ)

nhập mô tả hình ảnh ở đây


1

Swift, 63 byte

func a(d:[Int]){var i=0;while i<d.count{print(d[i]);i+=d[i]+1}}

Đây là mục đầu tiên của tôi, từ trước đến nay, vì vậy tôi không chắc chắn 100% về các quy tắc, nhưng hy vọng câu trả lời này đủ. Tôi không chắc chắn về các quy tắc về cách đưa đầu vào vào hệ thống. Tôi có một câu trả lời ngắn hơn nếu tôi được phép đảm nhận một chức năng ở đâu đó có thể trả về đầu vào.


Chào mừng đến với PPCG! Các quy tắc mặc định là bạn có thể có mã hoạt động như một chương trình đầy đủ, do đó, đầu vào (thường) trong STDIN và đầu ra (thường) thành STDOUT, hoặc một hàm, do đó, nhập (thường) từ các tham số chức năng và đầu ra (thường) Hàm trả về.
Stephen

@StepHen - cảm ơn! Tôi đoán điều đó làm cho phiên bản khác của tôi không hợp lệ sau đó. Mong được đóng góp nhiều hơn nữa!
AnonymousReality

1

Perl 6 , 31 byte

{(@_,{.[1+.[0]..*]}...^0)[*;0]}

Kiểm tra nó

Mở rộng:

{  # bare block lambda with implicit parameter 「@_」
  (
    # generate a sequence

    @_,

    {
      .[ # index into previous value in the sequence
        1 + .[0]  # start by skipping one plus the first element
                  # of the previous value in the sequence
        ..  *     # use that to create a Range with no end
      ]
    }

    ...^  # keep doing that until: (and throw away last value)
    0     # it generates an empty list

  )[ *; 0 ]  # from every value in the sequence, get the first element
}

Để giúp hiểu cách thức hoạt động của mã, nếu không có [*;0]điều này sẽ tạo ra một chuỗi như sau:

[0, 1, 0, 2, 5, 1, 3, 1, 6, 2],
   (1, 0, 2, 5, 1, 3, 1, 6, 2),
         (2, 5, 1, 3, 1, 6, 2),
                  (3, 1, 6, 2)

1

Thạch , 8 byte

ḢṄ‘ṫ@µL¿

Một chương trình đầy đủ in kết quả mỗi dòng theo sau một dòng mới (danh sách trống không tạo ra đầu ra).

Hãy thử trực tuyến!

Làm sao?

ḢṄ‘ṫ@µL¿ - Main link: list of non-negative integers  e.g. [2,5,4,0,1,2,0]
       ¿ - while:           Iteration:  1                  2             3          4        5
      L  -   length (0 is falsey)       7                  4             3          1        0
     µ   - ...do:                                                                            stop
Ḣ        -   head (pop & modify)        2 ([5,4,0,1,2,0])  0 ([1,2,0])   1 ([2,0])  0 ([0])
 Ṅ       -   print it (and yield it)   "2\n"              "0\n"         "1\n"      "0\n"
  ‘      -   increment                  3                  1             2          1
   ṫ@    -   tail from index            [0,1,2,0]          [1,2,0]      [0]         []
         -
         -                       i.e. a resulting in the printing of: '''2
                                                                         0
                                                                         1
                                                                         0
                                                                         '''

Cuối cùng là một câu trả lời Jelly! BTW Tôi có thể làm điều đó trong 7 byte.
Erik the Outgolfer

Và tôi cũng có một hàm trả về danh sách trong 18 byte.
Erik the Outgolfer 30/07/17

1

Python 3 , 35 byte

f=lambda h=0,*t:t and[h,*f(*t[h:])]

Hãy thử trực tuyến!

Chạy nó với đầu vào của bạn f(*l)ở đâu l. Có thể kéo dài các quy tắc cho đầu vào, nhưng tôi chỉ thích giải nén nâng cao.




Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.