Top 150 des entrevuesFacile

Détecter les carrés

Guide détaillé et implémentation de Python pour le problème « Détecter les carrés ».

Énoncé du problème

Facile

Vous recevez un flux de points sur le plan X-Y. Concevoir une structure de données qui :

- Ajoute de nouveaux points du flux. Les points en double sont autorisés et doivent être traités comme des points différents.

- Étant donné un point de requête, compte le nombre de façons de choisir trois points dans la structure de données de telle sorte que les trois points et le point de requête forment un carré aligné sur l'axe avec une aire positive.

Un carré aligné sur un axe est un carré dont les bords ont tous la même longueur et sont soit parallèles, soit perpendiculaires à l'axe des x et à l'axe des y.

Implémentez une fonction detectSquares(operations: list, arguments: list) -> list où les opérations sont « DetectSquares », « add » ou « count », et les arguments sont les paramètres correspondants. Renvoie une liste de résultats (Aucun pour le constructeur et l'ajout).

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

Exemples

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?
Pensez à utiliser des structures de données spécifiques aux mathématiques et à la géométrie, comme des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

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

Ouvrir dans l'éditeur
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

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.