Python 解LeetCode:367. Valid Perfect Square

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

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

 1 class Solution(object):
 2     def isPerfectSquare(self, num):
 3         """
 4         :type num: int
 5         :rtype: bool
 6         """
 7         left, right = 0, num
 8         while left <= right:
 9             mid = (left+right) / 2
10             if mid ** 2 == num:
11                 return True
12             elif mid ** 2 < num:
13                 left = mid + 1
14             else:
15                 right = mid -1
16         return False

 

posted @ 2017-10-21 17:52  潇湘旧友  阅读(349)  评论(0编辑  收藏  举报