Eu não gosto de digitar, então eu desenho meus labirintos em um formato muito simples:
# #####
# #
# ### #
# # # #
# # #
##### #
Não é labirinto ? Obviamente, acho que todos os labirintos devem parecer 3D, semelhantes, mas não iguais a esse desafio , para obter o máximo de labirinto , então eu (de má vontade) atualizei manualmente o labirinto para ficar assim:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Infelizmente, é difícil trabalhar com labirintos nesse formato e, depois de toda a digitação manual, não quero digitar novamente o original, então preciso que você escreva um programa para fazer a reversão para mim.
Regras
- Entrada será uma matriz de strings ou personagem de várias linhas consistindo apenas de
" "
,"|"
,"\"
,"+"
,"-"
, e novas linhas. - A saída consiste em
" "
e"#"
, no padrão descrito pelo labirinto. - Devido às minhas habilidades incríveis de design de labirinto, você não pode assumir nada sobre a estrutura do labirinto, além de ter uma desconstrução válida.
- Na 3dificação, (o processo que você deve desfazer agora), cada um
#
foi convertido nesse bloco de caracteres 3x4x7:+-----+ |\ \ + \ \ \ +-----+ \| | +-----+
- Blocos adjacentes foram unidos, assim:
mas sem unir linhas, fica assim:+-----+-----+ |\ \ \ + \ \ \ \ +-----+-----+ \|\ \ \ + \ \ \ \ +-----+-----+ \| | | +-----+-----+
+-----------+ |\ \ + \ \ \ \ \ \ \ \ \ \ \ \ +-----------+ \| | +-----------+
- Espaços côncavos às vezes bloqueiam partes de outras paredes.
+-----------+ |\ \ + \ \ \ \ +-----+ \ \ \ | \ \ \---+ \ +-----+ \| | +-----+
- O espaço em branco à direita na entrada ou saída é aceitável. (Você deve especificar se sua resposta requer espaço em branco à direita na entrada.)
- Os espaços em branco à esquerda devem corresponder aos espaços vazios na entrada.
- Eu ainda não gosto de digitar, então o código mais curto ganha
Casos de teste:
Input:
+-----+ +-----------------------------+
|\ \ |\ \
+ \ \ + \ \
\ \ \ \ +-----------------------+ \
\ \ \ \| |\ \
\ \ \ +-----------------------+ \ \
\ \ \ +-----------------+ \ \ \
\ \ \ |\ \ \ \ \
\ \ \ + \ \ \ \ \
\ \ \ \ \ +-----+ \ \ \ \
\ \ \ \ \ \ |\ \ \ \ \
\ \ \ \ \ \---+ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \
\ \ +-----------------+ \ \ \ \
\ \ \ \ \ \
\ \ \ \ \ \
\ +-----------------------------+ \ +-----+
\| | \| |
+-----------------------------+ +-----+
Output:
# #####
# #
# ### #
# # # #
# # #
##### #
Input:
+-----+
|\ \
+ \ \
\ +-----+
\| |
+-----+
Output:
#
Input:
+-----------------+
|\ \
+ \ \
+-----+ +-----+ +-----+
|\ \ |\ \
+ \ \---+ \ \
\ \ +-----+ \ +-----+ \
\ \ \ | \| |\ \
\ \ \---+ +-----+ \ \
\ \ +-----+ +-----+ \
\ \ \ |\ \
\ \ \ + \ \
\ +-----+ +-----+ +-----+
\| |\ \ |
+-----+ \ \---+
\ +-----------------+
\| |
+-----------------+
Output:
###
## ##
# #
## ##
###
Input:
+-----------------------------------------------------------------------------------------------------+
|\ \
+ \ \
\ +-----------------------------------------------+ +-----------------------------------------+ \
\| |\ \ |\ \
+-----------------------------------------------+ \ \---------------------------------------+ \ \
+-----+ +-----------------------------+ \ \ \ +-----------------------------+ \ \ \
|\ \ |\ \ \ \ \ |\ \ \ \ \
+ \ \ + \ \ \ \ \ + \ \ \ \ \
\ \ \ \ +-----------+ +-----+ \ \ \ \ \ +-----------------------+ \ \ \ \
\ \ \ \| |\ \ |\ \ \ \ \ \| |\ \ \ \ \
\ \ \ +-----------+ \ \---+ \ \ \ \ \ +-----------------------+ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ \ \ +-----------------------+ \ \ \ \ \ \
\ \ \ |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ + \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ +-----+ \ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ \ \| | \ \ \ \ \ \ \| | \ \ \ \ \ \
\ \ \ +-----+ \ \ \ \ \ \ +-----------------------------+ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------------------+ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ +-----------+ \ \ \ \ \ +-----------------------+ +-----+ \ \ \ \ \ \
\ \ \ | \ \ \ \ \ \ |\ \ | \ \ \ \ \ \
\ \ \---------+ \ \ \ \ \ \---------------------+ \ \---+ \ \ \ \ \ \
\ \ \ +-----------+ \ \ \ \ +-----------+ \ \ \ +-----+ \ \ +-----+
\ \ \ |\ \ \ \ \ |\ \ \ \ \ |\ \ \| |
\ \ \ + \ \ \ \ \ + \ \ \ \ \ + \ \ +-----+
\ \ \ \ +-----------------+ \ \ \ \ \ \ \ +-----+ \ +-----+ \
\ \ \ \| | \ \ \ \ \ \ \| | \| |\ \
\ \ \ +-----------------+ \ \ \ \ \ \ +-----+ +-----+ \ \
\ \ +-----------------------------+ +-----+ +-----------------------+ +-----------+
\ \ \
\ \ \
\ +-----------------------------------------------------------------------------------------------------+
\| |
+-----------------------------------------------------------------------------------------------------+
Output:
#################
# #
# ##### # ##### #
# # # # # #
# # # # ##### # #
# # # # #
### # ####### # #
# # # # # #
# ### # ## # ##
# # ## #
#################
Input:
+-----------------+
|\ \
+ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ \ \
\ +-----------------+
\| |
+-----------------+
Output:
###
###
###
Input: (Note leading whitespace)
+-----+ +-----+
|\ \ |\ \
+ \ \ + \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+-----+-----+-----+
\| |\ \ |\ \
+-----+ \ \---+ \ \
+-----+-----+-----+-----+
|\ \ |\ \ |
+ \ \---+ \ \---+
\ +-----+ \ +-----+
\| | \| |
+-----+ +-----+
Output:
# #
# #
# #
# #