Um dos aspectos interessantes da gravidade é que, até onde eu sei, você não pode simplesmente ter coisas flutuando no ar.
No entanto, parece que nem todos na Associação de Construtores Aleatórios de Castelos estão cientes desse fato, levando a castelos como este:
#
#
# # # # ###
#### #### # #
#### # # #### ###
############## ###
###### ###### ###
##### ##### ###
###
``````````````````````````````
e este:
# # # # # #
##############
### #### ###
# # # # # # # # ### #### ### # # # # # # # #
#### #### #### #### ############## #### #### #### ####
#### # # #### # # #### # # #### ## ######## ## #### # # #### # # #### # # ####
####################################################################################
###### ######## ######## ######## ######## ######## ######## ######## ######
################################### ###### ###################################
################################### ###### ###################################
##
##
##
##
##
````````````````````````````````````````````````````````````````````````````````````````````
e até este:
##########
#### # ###
#######################
#
#
#
#
# # # #
# # ###
# # ###
# # # # ##
# # ## ###
# # #####
# #####
# # #####
#####
## ##
#####
#####
## ##
## ##
````````````````````````````````````````````
Desafio
Para um castelo válido, todos os blocos serão conectados ao chão, direta ou indiretamente. Seu programa ou função receberá um castelo como os acima como entrada e seu programa deve retornar um valor verdadeiro ou falso, refletindo se o castelo é válido ou não.
Regras
- A entrada é fornecida como uma sequência.
- Todos os castelos válidos repousam sobre uma superfície
````````
,. (Se a sequência de entrada não contiver uma superfície, o castelo é inválido.) - Você pode assumir que todas as entradas satisfarão estes critérios:
- A superfície sempre será plana.
- A superfície sempre será pelo menos tão larga quanto o castelo, portanto não haverá blocos à esquerda ou à direita do solo.
- A entrada nunca terá
#
abaixo da superfície. - A entrada conterá apenas caracteres dados neste desafio. (
#
,`
espaço ou nova linha.) - Você pode assumir que a entrada sempre conterá pelo menos um caractere.
- Os blocos são conectados se estiverem adjacentes na horizontal ou na vertical. Diagonal não conta!
- Conectado:
# or ##
# - Não conectado:
# or # # or #
#
#
- Conectado:
- Castelos devem existir para serem válidos. (Em outras palavras, entradas sem nenhuma
#
devem fornecer um valor falso.) - A entrada conterá apenas caracteres dados neste desafio. (
#
,`
espaço ou nova linha.) - Você pode assumir que a entrada sempre conterá pelo menos um caractere.
- Aplicam-se regras de E / S padrão e brecha .
Casos de teste
Falsy
- Todos os exemplos dados acima.
# # # #
(Sem chão.)
#### ####
#### # # ####
##############
###### ######
## ### ######
(O bloco superior não está conectado na horizontal ou na vertical.)
### ####
#### # # ####
############## ##############
######
##### # ####
`` `` `` `` `` `` ``
`` ``
(A torre central não está conectada ao resto do castelo porque não há blocos adjacentes na horizontal ou na vertical que o conectam.)
# # # # # #
##########################
#
# # # # # # # # #### # # #### # # # # # # # # #
#### #### #### #### ## #### ## #### #### ## #### #### #### ####
## ## # # #### # # #### # # #### # # #### # ##### # # #### # # #### # # #### # # ####
########################################################### #################################################
########## ###### ######## ######## ######## ######### ######## ######## #### ##
################################################ ############################
################################### ###### ######### #########################
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `
(Nenhum castelo, apenas um único caractere de nova linha.)# #
(O bloco mais à direita não está conectado horizontal ou verticalmente.)
#
`` `` `` `
`` ``
Truthy
#
`# # # #
#### ####
#### # # ####
##############
###### ######
## ### #####
`` `` `` `` `` `` ``#
#
# # # # ###
#### #### # #
#### # # #### ###
############### ###
# ###### ### #####
##### ##### ###
##### ##### ###
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `# # # # # #
#######################
#
# # # # # # # # ### #### ### # # # # # # # # #
#### #### #### #### ############## #### #### #### ## ##
#### # # #### # # #### # # #### ## ######## ## ####### ## #### # # ##### # ### ## # # ####
################################################## ##########################################
###### ## ###### ######## ######## ######## ######### ######## ######## #### #### ######
################################################# # ###################################
################################### ###### ######### #########################
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` `` `` `#### ###
# #### ###
# ###
# ##
#
###
##### #########
#######
#########
### ## #####
##### #####
###### ######
##################
# ### ########## #
#############
#############
##############
###### ######
###### ######
#############
#############
#############
#############
###### ##### #
###### ######
#############
#############
########### ##
#############
###### ######
###### ######
########### ##
#############
#############
#############
######### ####
##### #####
########## #####
#####
`` `` `` `` `` `` `` `` `` ` `` `` `
####
#####
######
####
####
#####
########
##########
#### ######
###########
############
###################
## ##############
########### #################
###########################################
####### #################################
########################## ####################
############################## ####
############################
############################ #
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `
Boa sorte!