码迷,mamicode.com
首页 > 编程语言 > 详细

Leetcode 326.3的幂 By Python

时间:2018-09-23 11:38:09      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:solution   str   完成   整数   class   次方   leetcode   字符   进阶   

给定一个整数,写一个函数来判断它是否是 3 的幂次方。

示例 1:

输入: 27
输出: true

示例 2:

输入: 0
输出: false

示例 3:

输入: 9
输出: true

示例 4:

输入: 45
输出: false

进阶:
你能不使用循环或者递归来完成本题吗?

思路

循环/3看最后是不是等于1就好了

代码

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        while n > 1 and n % 3 == 0:
            n /= 3
        return n==1

进阶

题目最后说不使用循环和递归,那就使用log函数,见注释

class Solution(object):
    def isPowerOfThree(self, n):
        """
        :type n: int
        :rtype: bool
        """
        if n <= 0:
            return False
        else:
            s = str(math.log(n,3))
            if s[-2] == '.':    #如果是3的幂那么一定是x.0格式的,也就是转换为字符串之后s[-2]一定为.
                return True
            else:
                return False

Leetcode 326.3的幂 By Python

标签:solution   str   完成   整数   class   次方   leetcode   字符   进阶   

原文地址:https://www.cnblogs.com/MartinLwx/p/9692046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!