Diberikan string yang berpotensi kotak, beralih kotak. Ini menjadi lebih jelas dalam kasus uji dan penjelasan.
Input output
Masukkan format
Input akan berupa string tunggal yang dipisahkan oleh CR, LF, atau CRLF, atau daftar string. Format input terserah Anda untuk memutuskan.
Format output
Format output harus dalam format yang sama dengan input.
Penjelasan + Contoh
Mari kita ambil string kotak sebagai contoh:
+-------------+
|Hello, World!|
+-------------+
Untuk beralih kotak, kami menghapus baris pertama dan terakhir dan kolom pertama dan terakhir. Anda dapat mengasumsikan bahwa tidak akan ada spasi spasi tambahan setelah baris terakhir (dengan baris tambahan opsional pada akhir baris terakhir), dan tidak ada spasi tambahan spasi pada baris apa pun, tidak termasuk baris baru tentunya.
Ini akan menjadi:
Hello, World!
Jalan lain
Jika string tidak ada dalam kotak, tambahkan kotak ke dalamnya. Ini cukup sederhana; prepend +---...---+pada garisnya sendiri dengan ktanda hubung di mana kadalah panjang dari garis terpanjang, dan kemudian untuk setiap baris, padukan dengan spasi spasi agar sesuai dengan panjang garis terpanjang dan kemudian tambahkan dan tambahkan karakter pipa ( "|"). Terakhir, tambahkan baris yang berisi +---...---+pengaturan yang sama dengan baris pertama.
Sebagai contoh:
Hello, World!
menjadi:
+-------------+
|Hello, World!|
+-------------+
Anda dapat mengasumsikan bahwa tidak ada garis di input yang akan memiliki spasi spasi.
Contoh lain dari string yang seharusnya memiliki kotak diletakkan di sekitarnya:
Hello,
World!
menjadi
+----------+
|Hello, |
| World!|
+----------+
Contoh dari sesuatu yang masih harus dikotakkan:
+--------+
| |
--------+
menjadi:
+----------+
|+--------+|
|| ||
| --------+|
+----------+
Aturan + Spesifikasi
- Celah Standar Berlaku
- Tidak ada jalur input yang akan memiliki spasi putih terdepan atau tambahan baik secara keseluruhan maupun di setiap baris, terlepas dari apakah sudah dimasukkan dalam kotak atau tidak
- Kotak hanya akan memiliki
+sebagai sudutnya dan|untuk tepi vertikal dan-untuk sisi horizontal. - Kotak harus memiliki nilai tambah di tempatnya untuk dianggap sebagai kotak; jika memiliki tinggi atau lebar 2 (yaitu, tidak ada konten), itu harus tetap terbuka, yang akan menghasilkan banyak baris baru, tergantung pada tinggi kotak.
- Jika input memiliki kotak tetapi teks di luar kotak, semuanya harus dikotakkan.
- Program Anda harus memeriksa seluruh perimeter string. Jika satu karakter di sepanjang bagian luar tidak benar (baik karakter yang hilang atau berbeda dari yang seharusnya), maka itu harus kotak, bukan tanpa kotak.
- String yang tidak dikotakkan itu sendiri mungkin berisi
+ | -. Jika string yang tidak kotak itu sendiri memiliki kotak di sekitarnya, kembalikan string dengan kotak tersebut; seharusnya hanya dibuka satu kali saja.
Kasus Tepi
1: Kotak kecil
Memasukkan:
++
++
Output adalah baris kosong atau baru
Memasukkan:
+----+
+----+
Output kosong atau baris baru
Memasukkan:
++
||
||
++
Output adalah 2 baris baru atau 3 baris baru
2: Kotak Sebagian
Memasukkan:
+-------+
| Hello |
+ ------+
Keluaran:
+---------+
|+-------+|
|| Hello ||
|+ ------+|
+---------+
3: Teks di luar kotak
Memasukkan:
+-------+
a| Hello |
+-------+
Keluaran:
+----------+
| +-------+|
|a| Hello ||
| +-------+|
+----------+