Одним із цікавих аспектів сили тяжіння є те, що, наскільки я знаю, ви не можете просто плавати в повітрі.
Однак, схоже, не всі в Асоціації будівельників випадкових замків знають про цей факт, що призводить до таких замків:
#
#
# # # # ###
#### #### # #
#### # # #### ###
############## ###
###### ###### ###
##### ##### ###
###
``````````````````````````````
і цей:
# # # # # #
##############
### #### ###
# # # # # # # # ### #### ### # # # # # # # #
#### #### #### #### ############## #### #### #### ####
#### # # #### # # #### # # #### ## ######## ## #### # # #### # # #### # # ####
####################################################################################
###### ######## ######## ######## ######## ######## ######## ######## ######
################################### ###### ###################################
################################### ###### ###################################
##
##
##
##
##
````````````````````````````````````````````````````````````````````````````````````````````
і навіть цей:
##########
#### # ###
#######################
#
#
#
#
# # # #
# # ###
# # ###
# # # # ##
# # ## ###
# # #####
# #####
# # #####
#####
## ##
#####
#####
## ##
## ##
````````````````````````````````````````````
Виклик
Для дійсного замку всі блоки будуть з’єднані з землею прямо чи опосередковано. Вашій програмі або функції буде надано замок, такий як наведений вище, як вхідний, і ваша програма повинна повернути просте або хибне значення, що відображає, чи замок дійсний чи ні.
Правила
- Введення подається у вигляді рядка.
- Всі діючі замки спочивати на поверхні,
````````
. (Якщо рядок введення не містить поверхні, замок недійсний.) - Ви можете припустити, що всі дані відповідають цим критеріям:
- Поверхня завжди буде рівною.
- Поверхня завжди буде як мінімум такою ж широкою, як замок, тому зліва чи справа від землі не буде блоків.
- Вхід ніколи не буде
#
нижче поверхні. - Вхід буде містити лише символи, задані в цьому виклику. (
#
,`
пробіл або новий рядок.) - Ви можете припустити, що вхід завжди буде містити принаймні один символ.
- Блоки з'єднуються, якщо вони розташовані або горизонтально, або вертикально. Діагональ не рахується!
- Підключено:
# or ##
# - Не з'єднано:
# or # # or #
#
#
- Підключено:
- Замки повинні існувати, щоб бути дійсними. (Іншими словами, вхідні дані без будь-якого
#
повинні давати помилкове значення.) - Вхід буде містити лише символи, задані в цьому виклику. (
#
,`
пробіл або новий рядок.) - Ви можете припустити, що вхід завжди буде містити принаймні один символ.
- Застосовуються стандартні правила вводу / виводу та лазівки .
Тестові справи
Фальсі
- Всі приклади, наведені вище.
# # # #
(Без землі.)
#### ####
#### # # ####
##############
###### ######
## ### ######
(Верхній блок не з'єднаний ні горизонтально, ні вертикально.)
### ####
#### # # ####
##############
###### ######
##### # ####
`` `` `` `` `` `` `
`` `
(Центральна вежа не з'єднана з іншою частиною замку, оскільки немає горизонтально або вертикально сусідніх блоків, що з'єднують її.)
# # # # # #
##############
##### ## #####
# # # # # # # # # # #### #### # # # # # # # #
#### #### #### #### ## #### ## #### #### #### ####
## ## # # #### # #### # #### # #### # # #### # #### # #### # # ####
#################################################################### ##################################
###### ######## ## ###### ########################################################### ##
################################################### ##############################
#################################################################### ###########################
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` ` `` `` `` `` `` `` ``
(Немає замку, лише один символ нового рядка.)# #
(Крайній правий блок не з'єднаний ні горизонтально, ні вертикально.)
#
`` `` `` `
`` `
Truthy
#
`# # # #
#### ####
#### # # ####
##############
###### ######
## ### #####
`` `` `` `` `` `` ``#
#
# # # # ###
#### #### #
#### # #### ###
##################
# ###### ### #####
##### ##### ###
##### ##### ###
`` `` `` `` `` `` `` `` `` `` `` `` `` `` ``# # # # # #
#################
#### ###
# # # # # # # ### #### ### # # # # # # # #
#### #### #### #### ################## #### #### ## ##
#### # #### # # #### # #### ## ############# # #### # # ## ## # # ####
############################################## ####################################################
## ###### ########################################################### #### ######
############################################ # ######################################
#################################################################### ###########################
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `#### ###
# #### ###
# ###
# ##
#
###
#####
#######
#########
### ## #####
##### #####
###### ######
#################
# ### ########## #
#############
#############
#############
###### ######
###### ######
##############
#############
#############
#############
###### ##### #
###### ######
#############
#############
########### ##
#############
###### ######
###### ######
########### ##
#############
#############
#############
######### ####
##### ##########
##### #####
#####
`` `` `` `` `` `` `` `` `` ``
####
#####
######
####
####
#####
########
##########
#### ######
###########
############
##############
##### ## ##############
########### #################
###########################################
####### #################################
################# ####################
############################## ####
############################
################## #
`` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `
Удачі!