↓ 跳过正文
  1. 科学/
  2. 计算机/
  3. 算法/
  4. Leetcode/
  5. 0300-0399/

0367 有效的完全平方数

Solution

import bisect

class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        l = bisect.bisect_left(range(1, num + 1), num, key=lambda x: x * x) + 1
        return l * l == num

# 本地测试
if __name__ == "__main__":
    sol = Solution()
    print(sol.isPerfectSquare(16)) # True
    print(sol.isPerfectSquare(14)) # False
    print(sol.isPerfectSquare(1))  # True
    print(sol.isPerfectSquare(25)) # True

Solution 2

class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        i = 1
        while num > 0:
            num -= i
            i += 2
        return num == 0

# 本地测试
if __name__ == "__main__":
    sol = Solution()
    print(sol.isPerfectSquare(16)) # True
    print(sol.isPerfectSquare(14)) # False
    print(sol.isPerfectSquare(1))  # True
    print(sol.isPerfectSquare(25)) # True