Bei einem bekannten Puzzle wird gezählt, wie viele Quadrate mit den Punkten in einem 3x3-Raster erstellt werden können:
. . .
. . .
. . .
Die Antwort lautet 6 - vier kleine Quadrate, ein großes Quadrat und ein Quadrat aus den oberen, linken, unteren und rechten Stiften mit Kanten entlang der Diagonalen der Quadrate.
Ihre Aufgabe ist es, ein Programm zu erstellen, das die Gesamtzahl der Quadrate zählt, die aus einer Reihe von Punkten gebildet werden können.
Ihr Programm nimmt Eingaben in einem von zwei Formaten (Ihrer Wahl) entgegen:
Ein
M
By-N
Grid bestehend aus entweder.
oder.
.
stellt einen Punkt im Raster dar, von dem ein Quadrat eine Ecke sein kann, und alle Leerzeichen im Raster sind horizontal oder vertikal genau eine Einheit voneinander entfernt.Eine Liste von Koordinatenpaaren, die Punkte darstellen, auf denen sich ein Quadrat befinden kann.
und geben Sie die Anzahl der unterschiedlichen Quadrate zurück, die mit den bereitgestellten Punkten gebildet werden können. Ihr Programm muss für jede mögliche Eingabe eine korrekte Lösung zurückgeben.
Nehmen Sie zum Beispiel die obige Eingabe, aber wo das mittlere Quadrat fehlt:
...
. .
...
Hier gibt es nur zwei mögliche Quadrate (das große und das diagonale), daher sollte das Programm zurückkehren 2
.
Der kürzeste Code dafür in einer Sprache gewinnt.
Antworten:
Python, 95
Nimmt eine Liste von Koordinaten von stdin.
Erläuterung:
quelle