Sebenarnya tidak diilhami baik oleh Atbash Self Palindromes maupun oleh Generalized Gematria Calculator .
Diberikan string s dengan panjang n , menampilkan urutan Revu'a , yang merupakan karakter pertama dari s , dua karakter pertama dari s , ... karakter pertama n –2 dari s , n pertama –1 karakter dari s , seluruh s .
String hanya akan terdiri dari karakter Unicode (enkode apa pun yang Anda inginkan) yang memiliki directionality kuat dan ditemukan dalam kisaran 0x0000 hingga 0xFFFF. Namun, karakter kontrol arah tidak akan terjadi. Semua karakter dalam string apa pun yang diberikan akan memiliki arah yang sama.
Anda dapat kembali dalam notasi array ["t","te","tes","test"]
, sebagai string yang dipisahkan oleh spasi "t te tes test"
, sebagai teks multi-baris t
te
tes
test
, array yang diformat sebelumnya
t te tes uji, atau yang serupa. Jumlah memimpin, memisahkan, dan melacak spasi tidak penting, dan tidak ada yang mengikuti baris baru. Tanyakan apakah ragu.
Input kanan-ke-kiri harus menghasilkan output Kanan-ke-Kiri dalam urutan yang benar:
Input: "נחמן"
Output: "נ נח נחמ נחמן"
atau
נ נח נחמ נחמן, atau
["נ","נח","נחמ","נחמן"]
. Di antara hasil yang tidak valid "נחמן נחמ נח נ"
, "ן מן חמן נחמן"
dan "נחמן חמן מן ן"
.
JavaScript (ES6),
272625 byteMenyelamatkan satu byte terima kasih kepada @nicael dan @ MartinBüttner, satu terima kasih kepada @Neil
Mengambil keuntungan dari beberapa fitur built-in dari
.replace
fungsi JS . Secara khusus, dalam penggantian,$`
menjadi segalanya sebelum karakter yang cocok. Menggunakan regex/.?/g
daripada/./g
berarti itu juga cocok dengan string kosong di akhir.sumber
f=x=>x.replace(/.?/g,"$
")`. Anda mendapatkan ruang pimpinan tambahan tetapi diizinkanJapt,
104 byteSaya tidak menyadari bahwa pengurangan kumulatif akan sangat berguna dalam kasus ini. :-)
Output sebagai array, dipisahkan oleh koma secara default. Jika ini tidak diizinkan, gunakan kode 6-byte ini sebagai gantinya:
Cobalah online!
Bagaimana itu bekerja
sumber
Brainfuck, 40 byte
Konsol saya tidak mendukung karakter Kanan-ke-Kiri, tetapi saya rasa itu tidak akan berfungsi: c
Tidak Terkumpul:
sumber
Retina,
117 byteOutput dipisahkan oleh ruang, dengan ruang terdepan dan linefeed tambahan.
Cobalah online!
sumber
perl -pE 's/./$
$ & \ n / g'`. (Saya terlambat 11 bulan, saya tahu)Python, 35
Tidak dapat menemukan cara yang digunakan
and/or
untuk menyederhanakan rekursi karena[]
kesalahan.Solusi rekursif, mengembalikan daftar string.
Cobalah online
sumber
Prolog (SWI),
6049 byteKode:
Dijelaskan:
atom_prefix dengan X diatur ke input dan S sebagai variabel memberikan 1 awalan dari atom X dimulai dengan atom kosong.
findall mendapatkan semua solusi dan memasukkannya ke dalam daftar.
[_ | R] membuang kepala (atom kosong) dan menyimpan ekor di R
Contoh:
Cobalah online di sini
Edit: disimpan 11 byte dengan hanya menyimpan ekor di R .
sumber
Pyth, 3
Awalan builtin melakukan trik.
Test Suite
sumber
GNU Sed, 21
Skor termasuk +1 untuk
-E
opsi sed:Bekerja untuk LTR, tetapi tidak untuk RTL - Saya melewatkan sedikit itu.. Sebenarnya tidak berfungsi, RTL tidak melakukan rendering dengan benar di terminal saya. Ini berfungsi dengan baik dengan IO dilihat dalam editor teks yang masuk akal (misalnya emacs). Ini juga berfungsi di Ideone:Cobalah online.
sumber
Brachylog , 5 byte (Tidak bersaing)
Cobalah online!
Penjelasan
Senar dari kanan ke kiri tampaknya berfungsi dengan baik, meskipun saya bahkan tidak pernah mempertimbangkannya.
sumber
@[
dan@w
diimplementasikan tentu setelah April / Mei 2016. Orang bisa menemukan tanggal pasti pada komitmen Github tetapi pasti tidak sebelum tantangan ini diajukan.CJam, 9 byte
Output dipisahkan linefeed.
Uji di sini.
Penjelasan
sumber
Ll{+_p}/;
panjangnya sama, memposting karena saya tidak yakin jika seseorang dengan pengalaman lebih mungkin bisa bermain golf lebih banyak, dan juga mungkin memperbaiki hal tanda kutip: PJavaScript, 36 byte
Demo:
Prinsipnya adalah untuk memetakan dan menampilkan potongan string dari char pertama ke char setiap kata. Anehnya, ini berfungsi dengan baik untuk string RTL juga, tidak perlu optimasi.
sumber
Konsol saya tidak mendukung karakter Kanan-ke-Kiri, tetapi saya rasa itu tidak akan berfungsi: c
C, 74 byte (entri ke-2)
Tidak Terkumpul:
sumber
Konsol saya tidak mendukung karakter Kanan-ke-Kiri, tetapi saya rasa itu tidak akan berfungsi: c
C, 105 byte (entri ketiga)
Tidak Terkumpul:
sumber
TI-BASIC, 18 byte
Tidak valid secara teknis: TI-BASIC tidak mendukung Unicode.
Beri nama ini
prgmA
, dan masukan menggunakanAns
.Rekursi program akan lebih pendek, tetapi tidak akan ada cara untuk menginisialisasi variabel. Oleh karena itu, kami menampilkan substring input pada setiap iterasi. Masukan tidak pernah ditimpa, karena Disp tidak mengembalikan nilai.
Akhirnya, program berakhir dengan kesalahan setelah mencetak seluruh string.
sumber
Python, 54 Bytes
sumber
Java 7,
9592 byteJawaban sebelumnya ( 95 byte ):
Saya mencoba pendekatan rekursif, tetapi saya tidak bisa melakukannya. Mungkin orang lain akan (lebih pendek dari ini untuk loop).
Kasus yang tidak disatukan & uji:
Coba di sini.
Keluaran:
sumber
Dip , 1 byte (tidak bersaing)
Penjelasan:
sumber
MATL , 8 byte
Menggunakan versi bahasa saat ini (8.0.0) / kompiler
Contoh
Penjelasan
sumber
Mathematica, 29 byte
TODO: penjelasan
sumber
𝔼𝕊𝕄𝕚𝕟, 7 karakter / 16 byte
Try it here (Firefox only).
Mungkin ada builtin untuk ini di suatu tempat - saya hanya belum menemukannya.
Penjelasan
sumber
Javascript ES6, 29 byte
Ini bukan memenangkan apa pun, tetapi ini solusi sederhana.
sumber
Pyth, 11 Bytes
Cobalah
Penjelasan
sumber
Python, 32 byte
Fungsi rekursif yang menghasilkan string yang dipisahkan ruang dengan ruang terdepan.
Program 34 byte (Python 2):
sumber
V , 5 byte (tidak bersaing)
Cobalah online!
Bahasa ini lebih baru daripada tantangan, menjadikan jawaban ini tidak bersaing. Penjelasan:
sumber
PowerShell v2 +, 28 byte
Mengambil input
$args[0]
, melemparkannya sebagaichar
-array, menyalurkan karakter ke dalam satu lingkaran|%{...}
. Setiap iterasi, kami akumulasikan ke$o
melalui+=
karakter saat ini$_
. Ungkapan itu diringkas dalam parens sehingga salinan ditempatkan pada pipa. Pada akhir eksekusi, pipeline disiram melaluiWrite-Output
yang menempatkan garis baru antar elemen.sumber
PHP, 59 Bytes
Versi Online
sumber
Tidak diinginkan, Tidak Perlu, Oportunistik , 9 byte
sumber