Yếu tố biến mất


17

Đưa ra một chuỗi Svà một danh sách các chỉ mục X, sửa đổi Sbằng cách loại bỏ phần tử tại mỗi chỉ mục Strong khi sử dụng kết quả đó làm giá trị mới của S.

Ví dụ, được đưa ra S = 'codegolf'X = [1, 4, 4, 0, 2],

0 1 2 3 4 5 6 7  |
c o d e g o l f  |  Remove 1
c d e g o l f    |  Remove 4
c d e g l f      |  Remove 4
c d e g f        |  Remove 0
d e g f          |  Remove 2
d e f

Nhiệm vụ của bạn là thực hiện quy trình này, thu thập các giá trị Ssau mỗi thao tác và hiển thị từng giá trị trên một dòng mới theo thứ tự. Câu trả lời cuối cùng sẽ là

S = 'codegolf'
X = [1, 4, 4, 0, 2]

Answer:

codegolf
cdegolf
cdeglf
cdegf
degf
def
  • Đây là vì vậy hãy làm cho mã của bạn càng ngắn càng tốt.
  • Bạn có thể giả định rằng các giá trị trong Xluôn là các chỉ số hợp lệ Svà bạn có thể sử dụng lập chỉ mục dựa trên 0 hoặc dựa trên 1.
  • Chuỗi sẽ chỉ chứa [A-Za-z0-9]
  • Hoặc Shoặc xcó thể bằng trống. Nếu Strống, nó theo đó xcũng phải trống.
  • Bạn cũng có thể lấy Slàm danh sách các ký tự thay vì chuỗi.
  • Bạn có thể in đầu ra hoặc trả về danh sách các chuỗi. Khoảng trắng hàng đầu và dấu là chấp nhận được. Bất kỳ hình thức đầu ra là tốt miễn là nó có thể dễ dàng đọc được.

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

S = 'abc', x = [0]
'abc'
'bc'

S = 'abc', x = []
'abc'

S = 'abc', x = [2, 0, 0]
'abc'
'ab'
'b'
''

S = '', x = []
''

S = 'codegolfing', x = [10, 9, 8, 3, 2, 1, 0]
'codegolfing'
'codegolfin'
'codegolfi'
'codegolf'
'codgolf'
'cogolf'
'cgolf'
'golf'
code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

Chúng tôi có thể lấy Smột danh sách các nhân vật?
Ông Xcoder

@ Mr.Xcoder Chắc chắn, tôi sẽ thêm nó vào thông số kỹ thuật.
dặm

Chúng tôi có thể in như một danh sách các nhân vật?
Erik the Outgolfer

Chúng ta có thể bỏ qua mục đầu tiên (chuỗi gốc) trong đầu ra không?
Sản phẩm ETH

@ETHproductions Không, đầu ra phải là chuỗi gốc trước, sau đó mỗi chuỗi là kết quả của việc xóa một ký tự. Vì vậy, đầu ra nên chứa len(x)+1chuỗi.
dặm

Câu trả lời:


8

Haskell, 38 33 byte

s#i=take i s++drop(i+1)s
scanl(#)

Đi thẳng: liên tục lấy các yếu tố trước và sau chỉ số i, nối lại chúng và thu thập kết quả.

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

Chỉnh sửa: @Lynn lưu 5 byte. Cảm ơn!


s#i=take i s++drop(i+1)s thực sự ngắn hơn, tiết kiệm 5 byte.
Lynn

1
Không, bạn đang ở tuổi 33 - đừng quên rằng đoạn trích TIO có q=trong đó ^^;
Lynn

Đúng, bạn đúng.
nimi

8

JavaScript (ES6), 57 50 48 45 42 byte

Lấy chuỗi dưới dạng một mảng các ký tự riêng lẻ, xuất ra một mảng chứa một chuỗi được phân tách bằng dấu phẩy của bản gốc theo sau là một chuỗi con của các chuỗi được phân tách bằng dấu phẩy cho mỗi bước.

s=>a=>[s+"",a.map(x=>s.splice(x,1)&&s+"")]
  • 3 byte được lưu nhờ Arnauld đề nghị tôi lạm dụng thông số đầu ra lỏng lẻo nhiều hơn tôi đã dẫn đến việc tôi lạm dụng nó thậm chí nhiều hơn để tiết kiệm thêm 3 byte.

Kiểm tra nó

o.innerText=JSON.stringify((f=

s=>a=>[s+"",a.map(x=>s.splice(x,1)&&s+"")]

)([...i.value="codegolf"])(j.value=[1,4,4,0,2]));oninput=_=>o.innerText=JSON.stringify(f([...i.value])(j.value.split`,`))
label,input{font-family:sans-serif;font-size:14px;height:20px;line-height:20px;vertical-align:middle}input{margin:0 5px 0 0;width:100px;}
<label for=i>String: </label><input id=i><label for=j>Indices: </label><input id=j><pre id=o>


Giải trình

Chúng ta lấy hai đầu vào thông qua các tham số s(mảng chuỗi) và a(mảng số nguyên) theo cú pháp currying, nghĩa là chúng ta gọi hàm với f(s)(a).

Chúng tôi xây dựng một mảng mới và bắt đầu với mảng ban đầu s. Tuy nhiên, vì splicephương pháp chúng ta sẽ sử dụng sau này để sửa đổi một mảng, chúng ta cần tạo một bản sao của nó, điều mà chúng ta có thể làm bằng cách chuyển đổi nó thành một chuỗi (chỉ cần nối thêm một chuỗi trống).

Để tạo phân đoạn con, chúng ta mapqua mảng số nguyên a(trong đó xlà số nguyên hiện tại) và, với mỗi phần tử, chúng ta splice1 phần tử từ s, bắt đầu tại chỉ mục x. Chúng tôi trả lại sửa đổi s, một lần nữa tạo một bản sao của nó bằng cách chuyển đổi nó thành một chuỗi.


Bởi vì bất kỳ hình thức đầu ra nào cũng được miễn là có thể dễ đọc , tôi cho rằng một điều cũng nên được chấp nhận:s=>a=>[s+'',...a.map(x=>s.splice(x,1)&&s+'')]
Arnauld

Một điều tuyệt vời, @Arnuald - Tôi sẽ không nghĩ sẽ đẩy nó đi xa đến thế, thậm chí còn đưa ra thông số đó.
Xù xì

6

Japt , 6 byte

åjV uV

Kiểm tra nó trực tuyến!

Giải trình

UåjV uV   Implicit: U = array of integers, V = string
Uå        Cumulatively reduce U by
  j         removing the item at that index in the previous value,
   V        with an initial value of V.
     uV   Push V to the beginning of the result.

Cách khác:

uQ åjV

UuQ       Push a quotation mark to the beginning of U.
    å     Cumulatively reduce by
     j      removing the item at that index in the previous value,
      V     with an initial value of V.

Điều này hoạt động vì loại bỏ mục tại chỉ mục "không làm gì và do đó trả về chuỗi gốc.


6

Husk , 7 byte

G§+oh↑↓

Đầu tiên là chuỗi, sau đó (chỉ dựa trên 1). Hãy thử trực tuyến!

Giải trình

G§+oh↑↓
G        Scan from left by function:
           Arguments are string, say s = "abcde", and index, say i = 3.
      ↓    Drop i elements: "de"
     ↑     Take i elements
   oh      and drop the last one: "ab"
 §+        Concatenate: "abde"
         Implicitly print list of strings on separate lines.

Làm thế nào để tôi sử dụng một danh sách trống các chỉ số x?
dặm

@miles Bạn phải chỉ định loại, như thế này .
Zgarb

Tôi hiểu rồi, cảm ơn. Tôi không quen thuộc lắm với Haskell hoặc Husk.
dặm

6

Python 2 , 43 byte

s,i=input()
for i in i+[0]:print s;s.pop(i)

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

Bất kỳ hình thức đầu ra là tốt miễn là nó có thể dễ dàng đọc được.

Vì vậy, điều này in như danh sách các ký tự.


1
Đẹp, nhưng tại sao bạn chọn lạm dụng ký hiệu for i in i+[0]?
Ông Xcoder

@ Mr.Xcoder Bởi vì cách đó dòng cuối cùng được hiển thị. (và lý do tôi đăng riêng ở vị trí đầu tiên)
Erik the Outgolfer

Không, không +[0], tôi đang nói về for i in i. for k in ilà tương đương .
Ông Xcoder

@ Mr.Xcoder Bởi vì tôi thích nó theo cách đó ...
Erik the Outgolfer 11/08/17

Ok, chỉ tò mò thôi ... Có lẽ đó là một mẹo mà tôi không biết :)
Ông Xcoder

5

Con trăn 2 , 47 byte

Điều này có thể được rút ngắn xuống còn 43 byte , như @LuisMendo đã chỉ ra, nhưng đó đã là giải pháp của @ ErktheOutgolfer.

a,b=input();print a
for i in b:a.pop(i);print a

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


`a`[2::5]thay vào đó''.join(a)
Rod

@Rod Làm thế nào hơn làm việc?
Ông Xcoder

reprvà phân tách chuỗi, hoạt động tốt để biến danh sách các ký tự thành chuỗi, `a`[1::3]cũng có thể được sử dụng với danh sách các chữ số
Rod

@Rod Tôi biết chúng là gì, tôi không hiểu cách thức ::5hoạt động ở đây: P
Ông Xcoder

@ Mr.Xcoder sau đó nghiên cứu cắt chuỗi;) về cơ bản phải mất 5 char bắt đầu từ ngày 2
Erik the Outgolfer

4

Java 8, 78 byte

Đây là một lambda cà ri, từ int[]một người tiêu dùng StringBuilderhoặc StringBuffer. Đầu ra được in ra tiêu chuẩn.

l->s->{System.out.println(s);for(int i:l)System.out.println(s.delete(i,i+1));}

Dùng thử trực tuyến


1
Câu trả lời thứ hai của bạn là một mục hợp lệ. Không có gì cấm bạn chọn cẩn thận loại đầu vào của bạn miễn là nó có ý nghĩa. Tôi đã nhiều lần lấy ngay cả Streamđầu vào và nhận được câu trả lời rất hay. Trên thực tế, gần như tất cả các ngôn ngữ chơi golf sử dụng các luồng tương đương trong nội bộ. Vì vậy, bằng cách chọn đầu vào của bạn, bạn chỉ cần cấp một chút. Tuy nhiên +1
Olivier Grégoire

Có lẽ bạn nói đúng. Tôi nghĩ rằng tôi có xu hướng bảo thủ hơn hầu hết về những điều này. Tôi sẽ chuyển sang giải pháp thứ hai.
Jakob

3

05AB1E , 11 byte

v=ā0m0yǝÏ},

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

v           # For each index:
 =          #   Print without popping
  ā         #   Push range(1, len(a) + 1)
   0m       #   Raise each to the power of 0. 
            #   This gives a list of equal length containing all 1s
     0yǝ    #   Put a 0 at the location that we want to remove
        Ï   #   Keep only the characters that correspond to a 1 in the new list
         }, # Print the last step

Dòng đầu tiên không có ở đó. Ồ, và không chắc chắn nếu bạn có thể in như vậy.
Erik the Outgolfer

@EriktheOutgolferAny form of output is fine as long as it is easily readable
Riley

Tôi có thể lưu một số byte sau đó ...
Erik Outgolfer


3

R , 46 32 byte

function(S,X)Reduce(`[`,-X,S,,T)

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

Lấy đầu vào dưới dạng danh sách các ký tự và Xdựa trên 1. Reducelà tương đương R fold, hàm trong trường hợp này [là tập hợp con. Lặp đi lặp lại -Xvì lập chỉ mục tiêu cực trong R loại bỏ phần tử và initđược đặt thành S, accum=TRUEdo đó chúng tôi tích lũy các kết quả trung gian.

R , 80 byte

function(S,X,g=substring)Reduce(function(s,i)paste0(g(s,0,i-1),g(s,i+1)),X,S,,T)

Hàm 2 đối số, lấy X1 chỉ mục. NhậnS như một chuỗi.

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


Rất thông minh để sử dụng Reduceở đây. Làm tốt!
djhurio


3

PowerShell , 94 84 byte

param($s,$x)$a=[Collections.Generic.list[char]]$s;$x|%{-join$a;,$a|% r*t $_};-join$a

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

Đưa đầu vào $sdưới dạng một chuỗi và $xnhư một mảng rõ ràng. Sau đó chúng tôi tạo ra $adựa trên$s danh sách.

Mảng trong PowerShell có kích thước cố định (cho mục đích của chúng tôi ở đây), vì vậy chúng tôi cần sử dụng [System.Collections.Generic.list]loại dài để có quyền truy cập vào .removeAt()chức năng, chính xác như những gì nó nói trên hộp thiếc.

Tôi đã hy sinh 10 byte để bao gồm hai -joincâu lệnh để làm cho đầu ra đẹp. OP đã tuyên bố rằng việc đưa ra một danh sách các ký tự là tốt, vì vậy tôi có thể xuất ra $athay vì -join$a, nhưng theo tôi thì điều đó thực sự xấu xí.

Đã lưu 10 byte nhờ briantist.


Bạn có thể rời đi Systemvà chỉ cần sử dụng [Collections.Generic.list[char]]. Để giữ cho nó đẹp mà không phải hy sinh byte, bạn có thể đặt cuối cùng -join$avào phần chân trang trong TIO.
briantist

Tôi nghĩ bạn cũng có thể tiết kiệm 3 byte bằng cách thay đổi $a.removeat($_)thành ,$a|% r*t $_.
briantist

@briantist Cảm ơn những người đó - Tôi luôn quên xóa Systemtên lớp. Đáng buồn là cuối cùng -join$alà cần thiết cho mã, vì vậy tôi không thể di chuyển nó đến chân trang.
admBorkBork


2

05AB1E , 9 7 byte

=svõyǝ=

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


=s        # Print original string, swap with indices.
  v       # Loop through indices...
   õyǝ    # Replace current index with empty string.

-2 nhờ ý tưởng từ @ETHSản phẩm.


Điều này không in bất cứ điều gì nếu xtrống.
Riley

@Riley đã sửa. (#ETHSản phẩm đã được sửa.)
Magic Octopus Urn

1
Bạn không thể làm =sv""yǝ=hoặc một cái gì đó tương tự thay vì thay thế bằng một dòng mới và sau đó loại bỏ dòng mới?
Sản xuất ETH

@ETHproductions õcũng hoạt động :)
Bạch tuộc ma thuật Urn

Chà, tôi không biết 05AB1E, haha
Sản phẩm điện tử

2

Võng mạc , 58 byte

¶\d+
¶¶1$&$*
+1`(?=.*¶¶.(.)*)(((?<-1>.)*).(.*)¶)¶.*
$2$3$4

Hãy thử trực tuyến! Giải trình:

¶\d+

Khớp các chỉ số (không bao giờ nằm ​​trên dòng đầu tiên, vì vậy luôn được đặt trước một dòng mới).

¶¶1$&$*

Nhân đôi không gian các chỉ số, chuyển đổi thành unary và thêm 1 (vì các số 0 rất khó trong Retina).

+1`

Liên tục thay đổi trận đấu đầu tiên, luôn là giá trị hiện tại của chuỗi.

   (?=.*¶¶.(.)*)

Lấy chỉ số tiếp theo trong $#1.

                (           .    ¶)

Nắm bắt chuỗi, bao gồm $#1ký tự thứ và một dòng mới.

                 ((?<-1>.)*) (.*)

Tách riêng tiền tố và hậu tố của $#1ký tự thứ của chuỗi.

                                   ¶.*

Phù hợp với chỉ số.

$2$3$4

Thay thế chuỗi bằng chính nó và chỉ mục bằng tiền tố và hậu tố của $#1ký tự thứ.


2

Bình thường, 8 byte

.u.DNYEz

Trình diễn

Giảm, bắt đầu bằng chuỗi và lặp qua danh sách các chỉ mục, trên hàm xóa.


2

PowerShell , 54 58 byte

param($s,$x),-1+$x|%{$z=$_;$i=0;-join($s=$s|?{$z-ne$i++})}

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

Giải trình

Đưa đầu vào dưới dạng mảng char ([char[]] ).

Lặp qua mảng của các chỉ số ( $x) cộng với một tiêm tử đầu tiên của -1, sau đó cho mỗi người, gán các yếu tố hiện tại để $z, khởi $iđến 0, sau đó lặp qua mảng ký tự ( $s), trả về một mảng mới chỉ có các nhân vật có chỉ số ( $i) không bằng ( -ne) chỉ mục hiện tại để loại trừ ( $z). Mảng mới này được gán trở lại $s, trong khi đồng thời được trả về (điều này xảy ra khi việc gán được thực hiện trong ngoặc đơn). Kết quả trả về đó là -joined để tạo thành một chuỗi được gửi ra đường ống.

Việc tiêm -1vào lúc đầu đảm bảo rằng chuỗi gốc sẽ được in, vì đó là phần tử đầu tiên và một chỉ mục sẽ không bao giờ khớp -1.


1
Cách rất thông minh để kéo ra các chỉ số thích hợp.
admBorkBork

2

q / kdb +, 27 10 byte

Giải pháp:

{x _\0N,y}

Ví dụ:

q){x _\0N,y}["codegolf";1 4 4 0 2]
"codegolf"
"cdegolf"
"cdeglf"
"cdegf"
"degf"
"def"
q){x _\0N,y}["abc";0]
"abc"
"bc"
q){x _\0N,y}["abc";()]
"abc"
q){x _\0N,y}["abc";2 0 0]
"abc"
"ab"
,"b"
""    
q){x _\0N,y}["";()]
""

Giải trình:

Tận dụng lợi thế của chức năng hội tụ\ cũng như thả _.

{x _\0N,y}
{        } / lambda function, x and y are implicit variables
     0N,y  / join null to the front of list (y), drop null does nothing
   _\      / drop over (until result converges) printing each stage
 x         / the string (need the space as x_ could be a variable name)

Ghi chú:

Nếu chúng tôi không cần in kết quả ban đầu, đây sẽ là 2 byte trong q:

q)_\["codegolfing";10 9 8 3 2 1 0]
"codegolfin"
"codegolfi"
"codegolf"
"codgolf"
"cogolf"
"cgolf"
"golf"

2

Perl 5 , 55 byte (54 + " -l")

sub{print($s=shift);for(@_){substr$s,$_,1,"";print$s}}

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


Đẹp! Tôi đã đưa ra một cách tiếp cận rất giống nhau, nhưng là một chương trình đầy đủ (sử dụng -pa) cho 44 byte:$_=<>;substr$_,shift@F,print,""while@F&&$_
Dom Hastings

Đẹp! Không chắc chắn bạn cần trận chung kết &&$_vì bạn có thể cho rằng đầu vào là hợp lệ (danh sách các chỉ số không thể dài hơn chuỗi). Sử dụng giá trị trả về printlà số lượng ký tự khá trơn tru.
aschepler

À, đúng rồi! Tôi đã không nhận thấy rằng một phần của thông số kỹ thuật! Tôi nghĩ rằng câu trả lời của tôi là quá giống với bạn để gửi riêng mặc dù!
Dom Hastings

2

MATL , 8 byte

ii"t[]@(

Lập chỉ mục là 1 dựa trên.

Hãy thử trực tuyến! Hoặc xác minh các trường hợp thử nghiệm .

Giải trình

i      % Input string. Input has to be done explicitly so that the string
       % will be displayed even if the row vector of indices is empty
i      % Input row vector of indices
"      % For each
  t    %   Duplicate current string
  []   %   Push empty array
  @    %   Push current index
  (    %   Assignment indexing: write [] to string at specified index
       % End (implicit). Display stack (implicit)

2

C # (.NET Core) , 87 87 74 70 byte

S=>I=>{for(int i=0;;S=S.Remove(I[i++],1))System.Console.WriteLine(S);}

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

Chỉ cần đi để cho thấy rằng đệ quy không phải luôn luôn là giải pháp tốt nhất. Điều này thực sự ngắn hơn câu trả lời không hợp lệ ban đầu của tôi. Vẫn in ra STDOUT thay vì trả lại, điều này là cần thiết bởi vì nó kết thúc bằng một lỗi.

-4 byte nhờ TheLethalCoder


Theo một sự đồng thuận meta gần đây (mà tôi không thể tìm thấy) lambdas đệ quy trong C # không được phép trừ khi bạn chỉ định những gì chúng biên dịch trong số byte. Do đó, một phương pháp đầy đủ là ngắn hơn trong trường hợp này. Tôi đang tải xuống cho đến khi điều này được khắc phục, cho tôi biết khi nào.
TheLethalCoder

@TheLethalCoder Tôi có thể không đồng ý với sự đồng thuận, nhưng dường như đó là sự đồng thuận . Tôi đã cập nhật câu trả lời của mình.
Kamil Drakari

70 byte . Sử dụng currying và di chuyển một câu lệnh vào vòng lặp để ngừng cần niềng răng vòng lặp.
TheLethalCoder

@TheLethalCoder À, vậy đó là cách bạn sử dụng currying trong C #! Tôi biết nó ngắn hơn cho chính xác hai đối số, nhưng cuối cùng nó luôn phàn nàn về một phần cú pháp của tôi. Cảm ơn những cải tiến
Kamil Drakari

No worries and yeah the first one must always be a Func that returns the other Func, Action, Predicate,...
TheLethalCoder


1

Bình thường , 10 byte

Thay đổi quy tắc đã lưu cho tôi 1 byte:

V+E0Q .(QN

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

Bình thường , 11 byte

V+E0sQ .(QN

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


@miles không phải là đầu ra stderr được phép theo mặc định?
Erik the Outgolfer

@ Mr.Xcoder Tôi nghĩ rằng đầu ra stderr đã bị bỏ qua trong trường hợp đó ...
Erik the Outgolfer

@miles Tôi sẽ xóa của tôi và gắn cờ nó vào một mod nếu chúng tôi không xóa chúng. Cảm ơn!
Ông Xcoder

1

Gaia , 9 byte

+⟪Seḥ+⟫⊣ṣ

Tôi thực sự nên thêm chức năng "xóa tại chỉ mục" ...

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

Giải trình

+          Add the string to the list
 ⟪Seḥ+⟫⊣   Cumulatively reduce by this block:
  S         Split around index n
   e        Dump the list
    ḥ       Remove the first char of the second part
     +      Concatenate back together
        ṣ  Join the result with newlines

1

V , 12 byte

òdt,GÙ@-|xHx

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

Đây là 1 chỉ mục, đầu vào giống như:

11,10,9,4,3,2,1,
codegolfing

Giải trình

ò              ' <M-r>ecursively until error
 dt,           ' (d)elete (t)o the next , (errors when no more commas)
    G          ' (G)oto the last line
     Ù         ' Duplicate it down
        |      ' Goto column ...
      @-       ' (deleted number from the short register)
         x     ' And delete the character there
          H    ' Go back home
           x   ' And delete the comma that I missed

Làm thế nào để tôi sử dụng một danh sách trống các chỉ số x?
dặm

@miles Bằng cách thêm một vài byte :). Đơn giản chỉ cần một dòng đầu tiên trống bây giờ sẽ làm việc. Bạn có ổn không nếu tôi lấy danh sách bằng dấu phẩy? IE 1,2,3,. Danh sách trống sẽ không có gì, Singleton sẽ là1,
nmjcman101

Chắc chắn, bạn có thể sử dụng định dạng đầu vào đó.
dặm


1

Bình thường, 8 byte

+zm=z.Dz

Bộ thử nghiệm!

giải trình

+zm=z.DzdQ    # implicit: input and iteration variable
  m      Q    # for each of the elements of the first input (the array of numbers, Q)
     .Dzd     # remove that index from the second input (the string, z)
   =z         # Store that new value in z
+z            # prepend the starting value



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.