Diberikan string yang tidak kosong, terus hapus karakter pertama dan terakhir hingga Anda mendapatkan satu atau dua karakter.
Misalnya, jika stringnya adalah abcde
, program Anda harus mencetak:
abcde
bcd
c
Namun, jika ya abcdef
, itu harus berhenti di dua karakter:
abcdef
bcde
cd
Mengejar baris baru dan spasi tambahan di akhir setiap baris adalah opsional. Anda dapat memiliki sebanyak yang Anda inginkan atau tidak sama sekali.
Uji kasus
ABCDEFGHIJKLMNOPQRSTUVWXYZ -> ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXY
CDEFGHIJKLMNOPQRSTUVWX
DEFGHIJKLMNOPQRSTUVW
EFGHIJKLMNOPQRSTUV
FGHIJKLMNOPQRSTU
GHIJKLMNOPQRST
HIJKLMNOPQRS
IJKLMNOPQR
JKLMNOPQ
KLMNOP
LMNO
MN
ABCDEFGHIJKLMNOPQRSTUVWXYZ! -> ABCDEFGHIJKLMNOPQRSTUVWXYZ!
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXY
DEFGHIJKLMNOPQRSTUVWX
EFGHIJKLMNOPQRSTUVW
FGHIJKLMNOPQRSTUV
GHIJKLMNOPQRSTU
HIJKLMNOPQRST
IJKLMNOPQRS
JKLMNOPQR
KLMNOPQ
LMNOP
MNO
N
A -> A
AB -> AB
Ingat ini adalah kode-golf , jadi kode dengan jumlah byte terkecil menang.
Jawaban:
V , 10 byte
Cobalah online!
Penjelasan:
sumber
Python, 45 byte
Keluaran string secara rekursif, ditambah baris baru, ditambah spasi terkemuka untuk baris berikutnya, ditambah hasil rekursif untuk string yang diperpendek dengan ruang ekstra di awalan.
Jika baris baru terkemuka dibolehkan, kami dapat menyimpan satu byte:
Bandingkan dengan program (49 byte dalam Python 2):
sumber
ES6 (Javascript),
47,48, 43 byteEDIT: Operator ternary yang diganti dengan &&, string padding yang diawali dengan baris baru. Terima kasih @Neil untuk saran yang luar biasa!
EDIT: termasuk nama fungsi untuk doa rekursif, dilucuti satu byte dengan menggunakan baris baru literal
Golf
Uji
sumber
p
sama dengan baris baru dan spasi; mungkin itu bisa membantu Anda juga.s&&
bukans?...:''
.Python 2, 50 byte
Fungsi rekursif sederhana yang terus memperpendek string hingga hilang.
Sebut sebagai f ('string')
Keluaran
sumber
Perl, 31 byte
30 byte kode +
-p
bendera.Untuk menjalankannya:
Penjelasan : The
\S
dan.$
sesuai dengan karakter pertama dan terakhir,(.+)
tengah dan( *)
ke ruang trailing yang ditambahkan setiap kali kita menghapus satu karakter dari awal. Jadi regex menghapus satu karakter dari awal, satu dari akhir, dan menambahkan satu spasi pertama setiap kali.sumber
Brainfuck , 67 byte
Ini harus bekerja pada semua rasa brainfuck.
Cobalah online!
Kode tidak dikunci:
Masih harus ada beberapa byte untuk memotong di sini; Saya baru saja mulai menggunakan brainfuck, jadi pergerakan pointer saya mungkin sangat tidak efisien.
sumber
MATL , 9 byte
Ini menghasilkan spasi tambahan dan baris baru.
Cobalah online!
Penjelasan
sumber
Batch, 92 byte
Mengambil input pada STDIN.
sumber
C, 73 byte
Tidak Disatukan:
Pemakaian:
sumber
05AB1E , 8 byte
Kode:
Penjelasan:
Menggunakan pengkodean CP-1252 . Cobalah online!
sumber
Pyke, 10 byte
Coba di sini!
sumber
Haskell,
4743 byteCobalah di Ideone . Output adalah daftar string yang diizinkan dalam komentar tantangan. Untuk mencetak, jalankan dengan
(putStr.unlines.f)
alih - alih adilf
.Sunting: Disimpan 4 byte setelah memperhatikan bahwa trailing spasi dibolehkan.
sumber
Perl 6 , 42 byte
Diperluas:
sumber
GNU sed 24 Bytes
Termasuk +2 untuk
-rn
Mencetak, mengganti karakter non-spasi pertama dengan spasi, dan menghapus karakter terakhir hingga tidak ada yang berubah.
sumber
Retina , 17 byte
Cobalah online!
sumber
C ++ 14, 117 byte
Mengasumsikan input
s
adalahstd::string
dan mengembalikan teks animasi.Tidak Disatukan:
Pemakaian:
sumber
Vim - 14 penekanan tombol
Penjelasan:
Vim secara otomatis membunuh makro begitu kita kehabisan karakter
sumber
Jepret! - 16 blok
Output bersifat egois. 'Tunggu' itu untuk manusia.
sumber
PHP, 91 byte
Penggunaan: simpan dalam file dan panggilan dari browser:
sumber
Mathematica, 71 byte
sumber