Python 解LeetCode:367. Valid Perfect Square

时间:2024-01-21 17:34:09

题目描述:给出一个正整数,不使用内置函数,如sqrt(),判断这个数是不是一个数的平方。

思路:直接使用二分法,貌似没啥好说的。代码如下:

 class Solution(object):
def isPerfectSquare(self, num):
"""
:type num: int
:rtype: bool
"""
left, right = 0, num
while left <= right:
mid = (left+right) / 2
if mid ** 2 == num:
return True
elif mid ** 2 < num:
left = mid + 1
else:
right = mid -1
return False