Top 150-InterviewEinfach

Quadrate erkennen

Detaillierte Anleitung und Python-Implementierung für das Problem „Quadrate erkennen“.

Problemstellung

Einfach

Sie erhalten einen Punktestrom auf der X-Y-Ebene. Entwerfen Sie eine Datenstruktur, die:

- Fügt neue Punkte aus dem Stream hinzu. Doppelte Punkte sind zulässig und sollten als unterschiedliche Punkte behandelt werden.

– Zählt bei einem gegebenen Abfragepunkt die Anzahl der Möglichkeiten, drei Punkte aus der Datenstruktur so auszuwählen, dass die drei Punkte und der Abfragepunkt ein achsenausgerichtetes Quadrat mit positiver Fläche bilden.

Ein achsenausgerichtetes Quadrat ist ein Quadrat, dessen Kanten alle gleich lang sind und entweder parallel oder senkrecht zur x-Achse und zur y-Achse verlaufen.

Implementieren Sie eine Funktion detectSquares(operations: list, arguments: list) -> list, bei der die Operationen „DetectSquares“, „add“ oder „count“ sind und die Argumente die entsprechenden Parameter sind. Gibt eine Ergebnisliste zurück (keine für Konstruktor und Hinzufügen).

Einschränkungen
  • point.length == 2
  • 0 <= x, y <= 1000
  • At most 3000 calls in total will be made to add and count

Beispiele

Example 1
Input
["DetectSquares","add","add","add","count","count","add","count"], [[],[3,10],[11,2],[3,2],[11,10],[14,8],[11,2],[11,10]]
Output
[None,None,None,None,1,0,None,2]
Explanation

After adding (3,10), (11,2), (3,2): count(11,10) finds 1 square with corners (3,10),(11,10),(11,2),(3,2). count(14,8) finds 0. After adding another (11,2): count(11,10) finds 2 squares (using each copy of (11,2)).

Need a Hint?
Erwägen Sie die Verwendung mathematik- und geometriespezifischer Datenstrukturen wie Mengen oder Heaps.
Edge Cases to Watch
  • Leere Eingabestrukturen
  • Einzelelementeingaben
  • Große numerische Grenzen

Bereit zur Lösung?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Im Editor öffnen
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.