Scrivi una funzione (utilizzando il minor numero di byte possibile) che accetta una matrice bidimensionale di qualsiasi numero di colonne e righe in cui:
0
rappresenta un blocco vuoto,1
rappresenta il blocco di serpenti.
La funzione deve restituire il numero di possibili percorsi percorsi dal serpente.
Esempio 1:
Ingresso:
[
[1,1,1,1,1],
[0,0,0,0,1],
[0,0,0,0,1],
]
Produzione: 2
Nell'esempio sopra, la funzione tornerà 2
perché la risposta è una delle seguenti:
Esempio 2:
Ingresso:
[
[1,1,1,1],
[0,0,1,1],
[0,0,1,1],
]
Produzione: 6
In questo esempio la funzione tornerà 6
perché la risposta è una delle seguenti:
Nota:
Quando si valuta l'input, si può presumere che:
- Le matrici che rappresentano le colonne avranno sempre le stesse dimensioni (quindi le matrici sono rettangolari);
- Esiste almeno 1 percorso valido;
- Il serpente non può camminare attraverso i bordi (come può accadere in alcune versioni di serpente);
- Il serpente avrà sempre almeno 2 blocchi;
- Il serpente non può muoversi in diagonale;
- I percorsi sono diretti. (quindi, due percorsi che terminano in posizioni diverse ma che sembrano esattamente uguali non sono lo stesso percorso, si sommeranno al totale)
[[0,0,1,1],[0,0,1,1],[0,0,1,1]]
. La maggior parte delle risposte danno 16, ma una dà 15.