Você recebe uma grade retangular dos caracteres .
e #
, assim:
..........
..#.......
....#..#..
...#......
..........
Sua tarefa é preencher toda a caixa delimitadora alinhado ao eixo da #
com ainda mais #
:
..........
..######..
..######..
..######..
..........
A caixa delimitadora alinhada ao eixo é o menor retângulo que contém todos os #
.
Quero mais? Tente a parte II!
Regras
Você pode usar dois caracteres ASCII imprimíveis distintos (0x20 a 0x7E, inclusive), no lugar de #
e .
. Continuarei me referindo a eles como #
e .
pelo restante da especificação.
Entrada e saída podem ser uma única sequência separada por avanço de linha ou uma lista de sequências (uma para cada linha), mas o formato precisa ser consistente.
Você pode assumir que a entrada contém pelo menos uma #
e todas as linhas têm o mesmo comprimento.
Você pode escrever um programa ou uma função e usar qualquer um dos nossos métodos padrão de recebimento de entrada e saída.
Você pode usar qualquer linguagem de programação , mas observe que essas brechas são proibidas por padrão.
Isso é código-golfe , então a resposta mais curta e válida - medida em bytes - vence.
Casos de teste
Cada caso de teste tem entrada e saída próximos um do outro.
# #
... ...
#.. #..
... ...
... ...
#.. ###
..# ###
.#. ###
#.. ###
..# ###
..... .....
.#.#. .###.
..... .....
... ...
.#. .#.
... .#.
.#. .#.
... ...
.......... ..........
.......... ..........
....#..... ....#.....
.......... ..........
.......... ..........
.......... ..........
....#..... ...##.....
...#...... ...##.....
.......... ..........
..#....... ..###.....
....#..... ..###.....
...#...... ..###.....
.......... ..........
..#....... ..######..
....#..#.. ..######..
...#...... ..######..
.........# ..########
..#....... ..########
....#..#.. ..########
...#...... ..########
Respostas:
Excel VBA,
150 bytes146 bytesInstrução:
Crie uma pasta de trabalho com duas planilhas em branco: Sheet1 e Sheet2. Defina a entrada na Planilha1 e coloque o seguinte código no módulo de código da Planilha1
Ungolfed o código:
Explicação:
Exemplo de E / S:
Advertência: verifique se todas as células da Planilha2 estão sempre em branco toda vez que você executa o programa.
fonte
=C.Value
na primeira linha="#"
?05AB1E ,
70686961586040 bytesExplicação
Experimente online
fonte
Mathematica,
9170 bytes21 bytes salvos devido a @MartinEnder .
Função anônima. Pega uma matriz de caracteres como entrada e retorna uma matriz de caracteres como saída. O caractere Unicode é U + F3C7 para
\[Transpose]
.fonte
C #,
262251bytesGolf mais ainda quando eu tiver mais tempo.
Compila em um
Func<string[], string[]>
.Versão formatada:
fonte
Geléia ,
21191817 bytesEste é um programa completo. Entrada e saída são cadeias de 0 e 1 , delimitadas por feeds de linha.
Experimente online! ou verifique todos os casos de teste .
Como funciona
fonte
Retina , 87 bytes
A contagem de bytes assume a codificação ISO 8859-1.
Usa
A
para.
eZ
para#
.Experimente online!
fonte
Scala, 317 caracteres
Versão mais legível, provavelmente poderia ter jogado mais:
fonte
JavaScript (ES6), 168 bytes
Recebe a entrada como uma sequência multilinha. Funciona removendo recursivamente
.
s à esquerda e à direita de todas as linhas até que pelo menos uma linha comece e uma termine com a#
, depois seleciona o máximo de linhas possível, mas iniciando e finalizando nas linhas que contêm#
e alteram todos os.
s para#
. Provavelmente facilmente jogável.fonte
R,
158155 bytesEste programa recebe pontos de entrada
.
e hashtags#
, linha por linha.Ungolfed:
Aqui estão os detalhes da terceira linha:
fonte
PowerShell v3 +,
215162148144139 bytesRecebe entrada como uma matriz de strings
$n
, em0
vez de.
e em1
vez de#
. Em seguida, percorremos$n
, cada iteração testando se a cadeia atual é menor que0
(ou seja, existe uma1
nela) e, em caso afirmativo, produz uma cadeia. Usa um pseudo-ternário no lugar de uma operaçãoif
/else
.A sequência é construída a partir de loops através da largura da sequência de entrada. A cada iteração, aderimos a um
0
ou a um1
dependendo de se1
for encontrado em algum lugar na coluna vertical correspondente. Para o último caso de teste, por exemplo, isso resultará em uma sequência como0011001001
. Requer v3 + para o-in
operador. Essa string é emparelhada com um regex de fantasia para substituir qualquer "interior"0
s por1
s. Muito obrigado ao Business Cat no chat pela ajuda nisso. Nossa string seria0011111111
neste ponto.Senão, imprima a string atual (todos os zeros)
$_
.As seqüências resultantes são deixadas no pipeline e a saída é implícita. O padrão
Write-Output
para uma matriz de strings é com uma nova linha entre cada elemento, então é isso que acontece visualmente.Exemplos
fonte
Python,
219212 bytes(Embora eu ache que outro método pode ser mais curto)
Pega e retorna uma lista de lista de caracteres.
Teste no ideoone
fonte
Perl 6 , 62 bytes
Uma rotina anônima que pode receber uma matriz de matrizes de caracteres (representando a matriz) como argumento e modifica-a no local para que o escopo da chamada tenha a matriz modificada posteriormente.
Usa em
a
vez de#
como o caractere "ativado". O personagem "desligado" pode ser qualquer coisa, não importa.fonte
Python 3, 153 bytes
Entrada e saída são uma lista de strings.
destroçado
Teoria de Operação
A idéia principal é remover linhas e colunas do lado de fora da matriz se elas não tiverem um '#'. Tudo o que resta deve ser preenchido com '#'.
É implementado usando uma função recursiva.
Caso 1: a linha 0 não contém um '#'. O resultado é a linha 0 + chamada recursiva nas linhas restantes.
Caso 2: a linha 0 contém um '#'. Não é possível remover mais linhas. Gire a matriz cw para que a coluna 0 agora seja a linha 0. Em seguida, processe recursivamente a matriz rotacionada. O resultado é girado ccw.
Caso base: a matriz foi girada 4 vezes, o que significa que todas as linhas / colunas externas foram removidas, se possível. O que restar deve ser preenchido com '#'
fonte
Perl, 51 bytes
Inclui +2 para
-0p
Dê entrada em STDIN, off caractere é
A
, on caractere éa
, por exemplo:bounding.pl
:Mesmo comprimento:
fonte
Python 2, 184 bytes
Entrada e saída são uma lista de strings.
Experimente na Ideone (bifurcação da página de teste de Jonathan Allan)
fonte
Pitão , 50 bytes
Experimente online!
fonte