classSolution:defisPerfectSquare(self, num:int)->bool:"""
二分查找
"""if num <2:return num
# 因为除了1以外的所有有效数的完全平方一定小于等于num//2
left, right =2, num//2while left <= right:
mid =(left+right)//2
guess_squared = mid*mid
if num < guess_squared:
right = mid -1elif num > guess_squared:
left = mid +1else:returnTruereturnFalse