In una svolta alla ricerca di un ago in un pagliaio, è necessario trovare il più grande pagliaio contiguo contenente esattamente un ago . Nota che non puoi connettere celle su diagonali, solo sinistra / destra / su / giù.
Ingresso
Un array (o un numero di righe di input dell'utente, la tua scelta) di caratteri 'N'
(aghi) e '#'
(fieno). L'input contiene solo quei due caratteri e deve contenere almeno uno di ciascuno. Per esempio:
N#N#N
#NN##
###N#
N##N#
Produzione
La dimensione del pagliaio valido più grande possibile. Per il nostro esempio, dovremmo produrre 11 (ci sono 11 pezzi di fieno e un ago).
#
# ##
###N#
## #
Questo è code-golf , quindi vince il codice più corto. Si applicano le restrizioni standard sulle scappatoie.
Casi test
Ingresso a sinistra, possibile pagliaio massimo a destra
Caso 1: 4
N## ##
NN# #
#NN N
#N# #
Caso 2: 7
### ###
N#N #
NNN N
### ###
Caso 3: 10
N###N ###
#N#N# #N#
#N#N# # #
N###N ###
Caso 4: 10
N#N#N
#N#N# # # #
##N## ##N##
#N#N# # # #
N#N#N
Caso 5: 1
NN#NN
NNNNN
#NNN# #N
NN#NN