Middle — Senior
Kuidas arvestada duplikaadseid punkte sümmeetriat kontrollides?
sobes.tech AI
Vastus AI-lt
Kui kontrollite punktide kogumiirust, on oluline arvestada, et duplikaadid võivad tulemuse moonutada, kui neid õigesti ei töödelda. Duplikaatide arvestamiseks kasutatakse tavaliselt järgmisi lähenemisviise:
- Andmestruktuuride kasutamine ilma duplikaatideta: näiteks, punktide nimekirja muutmine kogumiks (set), et vältida kordusi.
- Iga punkti arvu arvutamine: kui sümmeetriat tuleb arvestada punktide korduvusega, tuleb nende arv salvestada sõnastikku (näiteks,
Map<Point, Integer>). - Võrdlus arvestades arvu: sümmeetriat kontrollides tuleb veenduda, et iga punkti ja selle peegeldus vastavad arvud.
Python näide, kus duplikaadid arvestatakse ja kontrollitakse sümmeetriat Y-telje (x=0) suhtes:
from collections import Counter
def is_symmetric(points):
counts = Counter(points)
for (x, y), cnt in counts.items():
mirror = (-x, y)
if counts[mirror] != cnt:
return False
return True
points = [(1,2), (-1,2), (1,2), (-1,2), (0,0)]
print(is_symmetric(points)) # True
Seega, duplikaatpunktid arvestatakse nende arvu järgi ning sümmeetriat kontrollitakse nende arvude arvestamisega.