Introdução
Às vezes, minhas caixas são pequenas demais para caber em qualquer coisa. Eu preciso que você faça um expansor de caixa! Então, o que faz de uma caixa uma caixa nesse desafio.
OOOO
O O
O O
O O
OOOO
Os cantos da caixa são sempre espaços. A própria caixa pode ser feita com o mesmo caractere. Esse caractere pode ser qualquer caractere ASCII imprimível , exceto um espaço. Então, esses são os caracteres:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Os comprimentos laterais da caixa acima são 4, 3 . Você pode assumir que o comprimento do lado é sempre positivo . Isso significa que esta é a menor caixa que você precisa manusear:
#
# #
#
Para expandir uma caixa, você precisa incrementar o comprimento de cada lado. Vamos passar por isso, passo a passo, com o exemplo acima. Primeiro, pegamos o lado superior da caixa, que é:
OOOO
Expandimos isso em um, obtendo:
OOOOO
Esta é a parte superior e inferior da caixa agora. Depois disso, fazemos o mesmo com os lados à esquerda e à direita:
O
O
O
Torna-se:
O
O
O
O
Agora montamos novamente a caixa, que resulta em:
OOOOO
O O
O O
O O
O O
OOOOO
A tarefa
Dada uma caixa, expanda-a por 1. A caixa pode ser fornecida em várias linhas ou em uma matriz.
Casos de teste
OOOO OOOOO
O O > O O
OOOO O O
OOOOO
XXXXXX XXXXXXX
X X > X X
X X X X
XXXXXX X X
XXXXXXX
~ ~~
~ ~ > ~ ~
~ ~ ~
~~
Isso é código-golfe , então a submissão com a menor quantidade de bytes ganha!