Anda diberi kisi-kisi persegi panjang karakter .
dan #
, seperti ini:
..........
..#.......
....#..#..
...#......
..........
Tugas Anda adalah untuk mengisi seluruh kotak pembatas yang selaras sumbu #
dengan yang lebih lanjut #
:
..........
..######..
..######..
..######..
..........
Kotak bounded aligned axis adalah kotak terkecil yang berisi semua #
.
Ingin lebih? Coba Bagian II!
Aturan
Anda dapat menggunakan dua karakter ASCII yang dapat dicetak yang berbeda (0x20 hingga 0x7E, inklusif), sebagai ganti dari #
dan .
. Saya akan terus merujuk mereka sebagai #
dan .
untuk sisa spesifikasi.
Input dan output dapat berupa string yang dipisahkan dengan linefeed tunggal atau daftar string (satu untuk setiap baris), tetapi formatnya harus konsisten.
Anda dapat mengasumsikan bahwa input berisi setidaknya satu #
dan semua baris memiliki panjang yang sama.
Anda dapat menulis program atau fungsi dan menggunakan salah satu metode standar kami untuk menerima input dan memberikan output.
Anda dapat menggunakan bahasa pemrograman apa pun , tetapi perhatikan bahwa celah ini dilarang secara default.
Ini adalah kode-golf , sehingga jawaban terpendek yang valid - diukur dalam byte - menang.
Uji Kasus
Setiap test case memiliki input dan output yang bersebelahan.
# #
... ...
#.. #..
... ...
... ...
#.. ###
..# ###
.#. ###
#.. ###
..# ###
..... .....
.#.#. .###.
..... .....
... ...
.#. .#.
... .#.
.#. .#.
... ...
.......... ..........
.......... ..........
....#..... ....#.....
.......... ..........
.......... ..........
.......... ..........
....#..... ...##.....
...#...... ...##.....
.......... ..........
..#....... ..###.....
....#..... ..###.....
...#...... ..###.....
.......... ..........
..#....... ..######..
....#..#.. ..######..
...#...... ..######..
.........# ..########
..#....... ..########
....#..#.. ..########
...#...... ..########
Jawaban:
VBA Excel,
150 byte146 bytePetunjuk:
Buat buku kerja dengan dua lembar kerja kosong: Sheet1 dan Sheet2. Atur input di Sheet1 dan kemudian masukkan kode berikut dalam modul kode Sheet1
Ungolfed the code:
Penjelasan:
Contoh I / O:
Peringatan: Pastikan setiap sel di Sheet2 selalu kosong setiap kali Anda menjalankan program.
sumber
=C.Value
di baris pertama="#"
?05AB1E ,
70686961586040 bytePenjelasan
Cobalah online
sumber
Mathematica,
9170 byte21 byte disimpan karena @MartinEnder .
Fungsi anonim. Mengambil matriks karakter sebagai input dan mengembalikan matriks karakter sebagai output. Karakter Unicode adalah U + F3C7 untuk
\[Transpose]
.sumber
C #,
262251 byteAkan bermain golf lebih jauh ketika saya punya lebih banyak waktu.
Mengkompilasi menjadi a
Func<string[], string[]>
.Versi yang diformat:
sumber
Jelly ,
21191817 byteIni adalah program lengkap. Input dan output adalah string 0 's dan 1 's, dibatasi oleh linefeeds.
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Retina , 87 byte
Hitungan byte mengasumsikan penyandian ISO 8859-1.
Penggunaan
A
untuk.
danZ
untuk#
.Cobalah online!
sumber
Scala, 317 karakter
Versi yang lebih mudah dibaca, mungkin bisa membuatnya lebih golf:
sumber
JavaScript (ES6), 168 byte
Mengambil input sebagai string multiline. Bekerja dengan menelanjangi secara terdepan dan membuntuti
.
dari semua baris hingga setidaknya satu baris dimulai dan satu berakhir dengan a#
, lalu memilih sebanyak mungkin garis tetapi memulai dan menyelesaikan garis yang berisi#
dan mengubah semua.
s#
. Mungkin siap golf.sumber
R,
158155 byteProgram ini menerima poin input
.
dan tagar#
, baris demi baris.Tidak Disatukan:
Berikut detail dari baris ketiga:
sumber
PowerShell v3 +,
215162148144139 byteMengambil input sebagai array string
$n
, dengan0
bukannya.
dan1
bukan#
. Kemudian, kita mengulang$n
, setiap iterasi menguji apakah string saat ini lebih kecil dari0
(yaitu, ada1
di dalamnya), dan jika demikian, output sebuah string. Menggunakan pseudo-ternary sebagai ganti operasiif
/else
.String dibangun dari loop melalui lebar string input. Setiap iterasi, kami memakukan pada
0
atau1
tergantung pada jika1
ditemukan di suatu tempat di kolom vertikal yang sesuai. Untuk kasus uji terakhir, misalnya, ini akan menghasilkan string seperti0011001001
. Membutuhkan v3 + untuk-in
operator. Tali itu dipasangkan dengan pengganti regex-dancy mewah untuk menggantikan "batin"0
dengan1
s. Terima kasih banyak kepada Business Cat dalam obrolan untuk bantuannya. String kita akan menjadi0011111111
di titik ini.Lain, output string saat ini (semua-nol)
$_
.String yang dihasilkan ditinggalkan pada pipa, dan output tersirat. Default
Write-Output
untuk array string adalah dengan baris baru di antara setiap elemen, jadi itulah yang terjadi secara visual.Contohnya
sumber
Python,
219212 byte(Meskipun saya pikir metode lain mungkin lebih pendek)
Mengambil dan mengembalikan daftar daftar karakter.
Uji di ideoone
sumber
Perl 6 , 62 byte
Rutin anonim yang dapat dilewatkan array array karakter (mewakili matriks) sebagai argumen, dan memodifikasinya di tempat sehingga ruang lingkup panggilan memiliki array yang dimodifikasi sesudahnya.
Menggunakan
a
alih-alih#
sebagai karakter "on". Karakter "tidak aktif" bisa apa saja, tidak peduli.sumber
Python 3, 153 byte
Input dan output adalah daftar string.
ungolfed
Teori Operasi
Gagasan utamanya adalah menghapus baris dan kolom di sekitar bagian luar array jika mereka tidak memiliki '#'. Apa pun yang tersisa harus diisi dengan '#' s.
Diimplementasikan menggunakan fungsi rekursif.
Kasus 1: baris 0 tidak mengandung '#'. Hasilnya adalah baris 0 + panggilan rekursif pada baris yang tersisa.
Kasus 2: baris 0 memang mengandung '#'. Tidak ada lagi baris yang bisa dihapus. Putar array cw sehingga kolom 0 sekarang menjadi baris 0. Kemudian proses array yang diputar secara rekursif. Hasilnya diputar ccw.
Kasing dasar: Array telah diputar 4 kali, artinya semua baris luar / kolom telah dihapus jika memungkinkan. Apa pun yang tersisa harus diisi dengan '#' s
sumber
Perl, 51 byte
Termasuk +2 untuk
-0p
Berikan input pada STDIN, off karakter
A
, on karaktera
, misalnya:bounding.pl
:Sama panjang:
sumber
Python 2, 184 byte
Input dan output adalah daftar string.
Cobalah di Ideone (percabangan halaman uji Jonathan Allan)
sumber
Pyth , 50 byte
Cobalah online!
sumber