Ganti string dengan dirinya sendiri
Tujuan Anda adalah mengganti string dengan dirinya sendiri dengan mengganti setiap karakter dalam string asli dengan yang sebelumnya, dimulai dengan karakter pertama dan membungkusnya. Berikut adalah beberapa contoh untuk menunjukkan apa yang saya maksud:
Contoh 1:
Input: program
Output: apgopra
How:
Program -> mrogram (replace p by m in program)
-> mpogpam (replace r by p in mrogram)
-> mprgpam (replace o by r in mpogpam)
-> mpropam (replace g by o in mprgpam)
-> mpgopam (replace r by g in mpropam)
-> mpgoprm (replace a by r in mpgopam)
-> apgopra (replace m by a in mpgoprm)
Contoh 2:
Input: robot
Output: orbro
How:
Robot -> tobot (replace r by t in robot)
-> trbrt (replace o by r in tobot)
-> trort (replace b by o in trbrt)
-> trbrt (replace o by b in trort)
-> orbro (replace t by o in trbrt)
Contoh 3:
Input: x
Output: x
How:
x -> x (replace x by x in x)
Contoh 4:
Input: xy
Output: xx
How:
xy -> yy (replace x by y in xy)
-> xx (replace y by x in yy)
Sidenotes:
- String
x
hanya akan berisi karakter dan spasi alfanumerik huruf kecil - Ini adalah kode-golf sehingga kode terpendek dalam byte menang!
Jawaban:
CJam, 11 byte
Uji di sini.
Penjelasan
sumber
TeaScript , 17 byte
192124TeaScript adalah JavaScript untuk bermain golf
Bagus dan pendek
Cobalah online (perhatikan jejak spasi di input)
Tidak Disatukan & Penjelasan
sumber
JavaScript ES6, 69 byte
Tampilkan cuplikan kode
sumber
F=
dalam jumlah byte Anda.s.slice(i-1)[0]
tidak sama dengans.slice(i-1,i)
?i=0
Rubi,
5048 byteUji:
sumber
Mathematica,
89757457 bytesumber
""<>Fold[#/.#2&,c=Characters@#,Thread[c->RotateRight@c]]&
Transpose
dan gagal.Pyth, 13 byte
Cobalah online. Suite uji.
sumber
k2 - 17 char
Berfungsi mengambil 1 argumen.
k2 memiliki builtin yang disebut
_ssr
sebagai S tring S earch dan R eplace._ssr[x;y;z]
akan menemukany
dix
dan menggantinya denganz
. Jadi kami menggunakan/
untuk melipat fungsi ini pada setiap penggantian yang ingin kami buat. Bagi mereka yang tidak terbiasa dengan melipat (seperti dalam pemrograman fungsional), pada dasarnya_ssr/[x; (y1; y2; y3); (z1; z2; z3)]
menjadi_ssr[_ssr[_ssr[x; y1; z1]; y2; z2]; y3; z3]
. String adalah daftar karakter mereka, jadi kami dapat memutar input satu langkah dan mendapatkan penggantian, dan pasang langsung.sumber
Haskell, 76 byte
Sayang sekali, Haskell bahkan tidak memiliki fungsi substitusi bawaan.
sumber
PHP, 76 byte
Ini adalah versi yang tidak dikoleksi:
sumber
Python,
67646257 BytesSolusi mudah, akan mencari sesuatu untuk mempersingkat ini. Terima kasih kepada @RandyC karena telah menghemat 5 byte.
Masukan harus dalam tanda kutip.
sumber
[:-1]
zip sejak terpotong ke iterable terpendek.Haskell, 58 byte
Cukup mirip dengan solusi Christian, tetapi menggunakan
map
dan fakta yangzip
mengabaikan elemen berlebihan jika daftar memiliki panjang yang tidak sama. Ini melipat melalui daftar penggantian (pada formulir(from,to)
), memperbarui string dengan memetakan fungsi penggantian tulisan tanganr
pada setiap huruf.Ekspresi
flip$map.r
ini diturunkan menggunakan plugin "Pointless" LambdaBot.sumber