Mengingat palindrom dihasilkan sesuai dengan tantangan ini , depalindromize itu.
Uji kasus
abcdedcba -> abcde
johncenanecnhoj -> johncena
ppapapp -> ppap
codegolflogedoc -> codegolf
Karena ini tentang depalindromizing, kode Anda tidak dapat berupa palindrom .
Ingat, ini adalah kode-golf , jadi kode dengan byte paling sedikit menang.
code-golf
restricted-source
palindrome
Oliver Ni
sumber
sumber
Jawaban:
Julia,
2115 byteCobalah online! (kode tambahan untuk mencetak hasil)
sumber
end/2
adalah fitur keren05AB1E , 3 byte
Menggunakan pengkodean CP-1252 . Cobalah online!
sumber
Python 2, 23 byte
Saya tidak dapat menguji pada ponsel saya, tetapi ini harus bekerja:
sumber
apt-get install python2
apt-get
di ponsel Anda, itu mungkin bukan ponsel biasa.Fuzzy Octo Guacamole, 4 byte
Saya menghabiskan waktu mencari bahasa yang tantangannya singkat, dan menyadari bahwa saya bodoh dan bahasa saya sendiri yang melakukannya.
sumber
05AB1E, 5 byte
Cobalah online!
Penjelasan:
sumber
Cheddar,
2218 byteSederhananya saya pikir tidak perlu penjelasan tapi saya akan menambahkannya jika mau.
Cobalah online
sumber
Pyth - 4 byte
Test Suite .
sumber
JavaScript (ES6),
32 2625 byte1 byte disimpan berkat Neil:
Tampilkan cuplikan kode
Solusi sebelumnya
26 byte berkat Downgoat:
32 byte:
sumber
s=>s.slice(0,s.length/2+1)
Karena panjang akan selalu anehs=>s.slice(0,s.length/2+.5)
akan bekerja bahkan lebih lama.-s.length/2
bekerja untuk panjang ganjil dan genap.WinDbg,
8771 byte-16 byte dengan tidak memasukkan NULL, sebagai ganti panjangnya
da
Input diteruskan melalui alamat di psuedo-register
$t0
. Sebagai contoh:Ia bekerja dengan mengganti hak tengah char (atau kanan tengah jika string memiliki panjang genap) dengan nol dan kemudian mencetak string dari alamat memori awal yang asli.
Keluaran:
sumber
Haskell, 27 byte
Versi pointfree dari
yang juga 27 byte.
sumber
MATL ,
76 byteCobalah online!
Penjelasan
sumber
end
, dan titik dua antara elemen array adalah implisitJelly , 4 byte
Cobalah online!
Penjelasan
sumber
V , 12 byte
Dua solusi yang sama sekali berbeda, keduanya 12 byte.
Cobalah online!
Cobalah online!
sumber
Brachylog , 4 byte
Cobalah online!
Penjelasan
Jika input memiliki panjang ganjil, babak kedua yang dihasilkan oleh
@2
adalah yang paling panjang, yang harus kita kembalikan (setelah membalikkannya).sumber
Dyalog APL , 9 byte
⊢
argumen↑⍨
terpotong di2÷⍨
setengah dari1+
satu ditambah≢
panjangnyaTryAPL online!
sumber
Perl, 15 byte
Termasuk +2 untuk
-lp
Berikan string input pada STDIN:
depal.pl
:Ini
-l
tidak benar-benar diperlukan jika Anda memasukkan palindrome tanpa baris baru, tetapi saya memasukkannya agar adil dengan solusi perl lainnya yang menggunakannya.sumber
Java 7, 57 byte
sumber
}
(jadi 57 byte).TI-Basic, 14 byte
Fungsi standar. Mengembalikan string dari indeks 1 ke indeks (panjang / 2 + 1/2).
sumber
Bahasa GameMaker, 59 byte
sumber
PHP, 40 byte
strlen($a)/2
di-cast ke int, dengan input selalu memiliki panjang ganjil,+1
cukup untuk dibulatkan.42 byte untuk panjang apa pun:
untuk panjang tidak diketahui,
(1+strlen)/2
mendapat dilemparkan ke int, pembulatan ke atasstrlen/2
.sumber
Dip, 8 byte
Penjelasan:
Ini mungkin bisa lebih ditingkatkan.
sumber
Perl, 23 + 2 (
-pl
bendera) =2825 byteTidak Disatukan:
Terima kasih kepada @ardnew.
sumber
length()
dengany|||c
Befunge ,
2422 byteCobalah online!
Befunge tidak memiliki tipe string atau array sehingga semuanya dilakukan pada stack satu karakter sekaligus. Loop pertama (pada baris atas) menghitung jumlah karakter yang dibaca (bertukar dengan kurang dari 2 elemen dalam tumpukan menghasilkan awal 0). Yang kedua (di garis tengah) mencetak karakter sambil menghitung mundur dua kali lebih cepat. Akibatnya hanya setengah dari input yang dicetak, tetapi LIFO jadi dalam urutan yang benar.
Terima kasih kepada Brian Gradin untuk versi yang lebih baik dari loop pertama.
sumber
Perl, 14 + 3 (
-lF
bendera) =1917 byteUntuk 5.20.0+:
Untuk 5.10.0+ (19 byte):
Tidak Disatukan:
Terima kasih kepada @simbabque.
sumber
-n
dan-a
karena-F
melakukannya secara implisit.Brainfuck, 20 byte
Cobalah online.
Ini menghemat satu byte dari pendekatan yang lebih mudah dalam mengonsumsi input sebelum memulai loop utama:
sumber
Pyth ,
87 byteDisimpan 1 dengan berkat @Steven H
Bukan jawaban Pyth terpendek (setengah) tapi saya berusaha untuk mempelajari bahasa dan ini adalah posting pertama saya menggunakannya. Diposting sebanyak-banyaknya untuk komentar dan umpan balik seperti apa pun. Ini juga program Pyth pertama yang benar-benar harus saya kerjakan :)
Sekarang saya hanya perlu mencari tahu bagaimana jawaban 4 byte dari @Maltysen bekerja :-)
sumber
c
akan memasukkan inputQ
menjadi beberapa2
bagian dan menggunakan bagian pertamah
(yang, berkat penerapan chop, akan mengambil huruf tengah juga). Adapun kode Anda, Anda bisa mengganti+1
denganh
, built-in untuk angka yang bertambah.h
petunjuknya @ Sebelas H. Ada begitu banyak built-in, saya kira hanya perlu beberapa waktu untuk menemukan semuanya :)Sebenarnya , 5 byte
Cobalah online!
-1 byte terima kasih kepada Sherlock9
Penjelasan:
sumber
;l½K@H
DC,
3130 byteMenyimpan 1 byte berkat Cyoce.
Pemakaian:
sumber
char* c
Python 2, 23 byte
sumber
MATLAB / Oktaf,
20191816 byte1 byte off meminjam ide dari jawaban Easterly Irk (tambahkan
1
bukannya.5
)2 byte off berkat @StewieGriffin (tanda kurung yang tidak perlu)
Cobalah di Ideone .
sumber