Diberikan string S
dan daftar indeks X
, modifikasi S
dengan menghapus elemen pada setiap indeks S
saat menggunakan hasil itu sebagai nilai baru S
.
Misalnya, diberikan S = 'codegolf'
dan 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
Tugas Anda adalah melakukan proses ini, mengumpulkan nilai S
setelah setiap operasi, dan menampilkannya masing-masing pada baris baru secara berurutan. Jawaban akhirnya adalah
S = 'codegolf'
X = [1, 4, 4, 0, 2]
Answer:
codegolf
cdegolf
cdeglf
cdegf
degf
def
- Ini kode-golf jadi buat kode Anda sesingkat mungkin.
- Anda dapat mengasumsikan bahwa nilai-nilai dalam
X
selalu merupakan indeks yang validS
, dan Anda dapat menggunakan pengindeksan berbasis 0 atau 1. - String hanya akan berisi
[A-Za-z0-9]
- Entah
S
ataux
mungkin dengan kosong. JikaS
kosong, maka itux
juga harus kosong. - Anda juga dapat mengambil
S
sebagai daftar karakter, bukan string. - Anda dapat mencetak output atau mengembalikan daftar string. Ruang putih terkemuka dan tertinggal dapat diterima. Segala bentuk output baik-baik saja asalkan mudah dibaca.
Uji Kasus
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
mil
sumber
sumber
S
sebagai daftar karakter?len(x)+1
string.Jawaban:
Haskell,
3833 byteLurus ke depan: berulang kali ambil elemen sebelum dan sesudah indeks i, bergabung kembali dan kumpulkan hasilnya.
Cobalah online!
Sunting: @ Lynn menyimpan 5 byte. Terima kasih!
sumber
s#i=take i s++drop(i+1)s
sebenarnya lebih pendek, menghemat 5 byte.q=
ada di sana ^^;JavaScript (ES6),
5750484542 byteMengambil string sebagai larik karakter individu, menghasilkan larik yang berisi string yang dipisahkan koma dari aslinya diikuti oleh subarray string yang dipisahkan koma untuk setiap langkah.
Menguji
Penjelasan
Kami mengambil dua input melalui parameter
s
(array string) dana
(array integer) dalam sintaks currying, artinya kita memanggil fungsi denganf(s)(a)
.Kami membangun array baru dan memulainya dengan yang asli
s
. Namun, sebagaisplice
metode yang akan kita gunakan nanti memodifikasi array, kita perlu membuat salinannya, yang bisa kita lakukan dengan mengubahnya menjadi string (cukup tambahkan string kosong).Untuk menghasilkan subarray, kita
map
melewati array integera
(di manax
integer saat ini) dan, untuk setiap elemen, kitasplice
1 elemen daris
, dimulai dari indeksx
. Kami mengembalikan yang dimodifikasis
, kembali membuat salinannya dengan mengubahnya menjadi string.sumber
s=>a=>[s+'',...a.map(x=>s.splice(x,1)&&s+'')]
Japt , 6 byte
Uji secara online!
Penjelasan
Kalau tidak:
Ini berfungsi karena menghapus item pada indeks
"
tidak melakukan apa-apa dan mengembalikan string asli.sumber
Sekam , 7 byte
Mengambil string terlebih dahulu, lalu indeks (berbasis 1). Cobalah online!
Penjelasan
sumber
x
?Python 2 , 43 byte
Cobalah online!
Jadi ini dicetak sebagai daftar karakter.
sumber
for i in i+[0]
?+[0]
, yang saya bicarakanfor i in i
.for k in i
setara .Python 2 , 47 byte
Ini bisa disingkat menjadi 43 byte , seperti yang ditunjukkan oleh @LuisMendo, tapi itu sudah solusi dari @ ErktheOutgolfer.
Cobalah online!
sumber
`a`[2::5]
sebagai gantinya''.join(a)
repr
dan pembelahan string, berfungsi baik untuk mengubah daftar karakter menjadi string,`a`[1::3]
juga dapat digunakan dengan daftar digit::5
kerjanya di sini: PJava 8, 78 byte
Ini adalah lambda kari, dari
int[]
ke konsumenStringBuilder
atauStringBuffer
. Output dicetak ke standar keluar.Cobalah secara Online
sumber
Stream
sebagai masukan dan mendapat jawaban yang sangat bagus. Sebenarnya, hampir semua bahasa golf menggunakan stream yang setara secara internal. Jadi dengan memilih input Anda, Anda hanya level anak laki-laki. +1 tetap05AB1E , 11 byte
Cobalah online!
sumber
Any form of output is fine as long as it is easily readable
Mathematica, 70 byte
Cobalah online!
sumber
R ,
4632 byteCobalah online!
Mengambil input sebagai daftar karakter dan
X
berbasis 1.Reduce
adalah setara dengan Rfold
, fungsi dalam hal ini[
adalah subset. Berulang-ulang-X
karena pengindeksan negatif dalam R menghilangkan elemen, daninit
diatur keS
, denganaccum=TRUE
demikian kami mengakumulasikan hasil antara.R , 80 byte
2-argument function, takes
X
1-indexed. TakesS
as a string.Try it online!
sumber
Reduce
here. Well done!Haskell, 33 bytes
Try it online!
sumber
PowerShell,
9484 bytesTry it online!
Takes input
$s
as a string and$x
as an explicit array. We then create$a
based on$s
as a list.Arrays in PowerShell are fixed size (for our purposes here), so we need to use the lengthy
[System.Collections.Generic.list]
type in order to get access to the.removeAt()
function, which does exactly what it says on the tin.I sacrificed 10 bytes to include two
-join
statements to make the output pretty. OP has stated that outputting a list of chars is fine, so I could output just$a
rather than-join$a
, but that's really ugly in my opinion.Saved 10 bytes thanks to briantist.
sumber
System
and just use[Collections.Generic.list[char]]
. To keep it pretty without sacrificing bytes, you can put the last-join$a
in the footer in TIO.$a.removeat($_)
to,$a|% r*t $_
.System
from the class name. Sadly the last-join$a
is necessary for the code, so I can't move it to the footer.Python 2, 50 bytes
Try it online!
sumber
05AB1E,
97 bytesTry it online!
-2 thanks to idea from @ETHProductions.
sumber
x
is empty.=sv""yǝ=
or something similar instead of replacing with a newline and then removing the newline?õ
also works :)Retina, 58 bytes
Try it online! Explanation:
Match the indices (which are never on the first line, so are always preceded by a newline).
Double-space the indices, convert to unary, and add 1 (because zeros are hard in Retina).
Repeatedly change the first match, which is always the current value of the string.
Retrieve the next index in
$#1
.Capture the string, including the
$#1
th character and one newline.Separately capture the prefix and suffix of the
$#1
th character of the string.Match the index.
Replace the string with itself and the index with the prefix and suffix of the
$#1
th character.sumber
Pyth, 8 bytes
Demonstration
Reduce, starting with the string and iterating over the list of indices, on the deletion function.
sumber
PowerShell,
5458 bytesTry it online!
Explanation
Takes input as a char array (
[char[]]
).Iterates through the array of indices (
$x
) plus an injected first element of-1
, then for each one, assigns the current element to$z
, initializes$i
to0
, then iterates through the array of characters ($s
), returning a new array of only the characters whose index ($i
) does not equal (-ne
) the current index to exclude ($z
). This new array is assigned back to$s
, while simultaneously being returned (this happens when the assignment is done in parentheses). That returned result is-join
ed to form a string which is sent out to the pipeline.Injecting
-1
at the beginning ensures that the original string will be printed, since it's the first element and an index will never match-1
.sumber
q/kdb+,
2710 bytesSolution:
Examples:
Explanation:
Takes advantage of the converge functionality
\
as well as drop_
.Notes:
If we didn't need to print the original result, this would be 2 bytes in
q
:sumber
Perl 5, 55 bytes (54 + "
-l
")Try it online!
sumber
-pa
) for 44 bytes:$_=<>;substr$_,shift@F,print,""while@F&&$_
&&$_
since you can assume the input is valid (the list of indices can't be longer than the string). Using the return value ofprint
as the number of characters is quite slick.MATL, 8 bytes
Indexing is 1-based.
Try it online! Or verify the test cases.
Explanation
sumber
C# (.NET Core),
87877470 bytesTry it online!
Just goes to show that recursion isn't always the best solution. This is actually shorter than my original invalid answer. Still prints to STDOUT rather than returning, which is necessary because it ends with an error.
-4 bytes thanks to TheLethalCoder
sumber
Func
that returns the otherFunc
,Action
,Predicate
,...C (gcc), 99 bytes
Try it online!
Takes the string, array, and the length of the array.
sumber
Pyth, 10 bytes
Rule changes saved me 1 byte:
Try it online!
Pyth, 11 bytes
Try it online!
sumber
Gaia, 9 bytes
I should really add a "delete at index" function...
Try it online!
Explanation
sumber
V, 12 bytes
Try it online!
This is 1-indexed, input is like:
Explanation
sumber
x
?1,2,3,
. Empty list would be nothing, Singleton would be1,
Swift 3, 80 bytes
Try it online!
sumber
Pyth, 8 bytes
Test suite!
explanation
sumber
Python 2, 54
Try It Online
sumber
APL,
313028 bytesTry it online!
sumber
C# (Mono), 85 bytes
Try it online!
sumber