首页 > 其他分享 >leedcode-丑数

leedcode-丑数

时间:2024-03-25 14:22:35浏览次数:16  
标签:丑数 int self leedcode Solution isUgly

丑数 就是只包含质因数 2、3 和 5 的正整数。
换句话说 丑数=2*……*2*3*……*3*5*……*5

class Solution:
    def isUgly(self, n: int) -> bool:
        # 如果 n 小于等于 0,则不是丑数,返回 False
        if n <= 0:
            return False
        
        # 如果 n 是丑数,经过下面的循环处理后,最终 n 会变为 1
        # 如果 n 不是丑数,即不能被 2、3、5 整除,最终 n 会变为除去所有 2、3、5 因子后的数
        while n % 2 == 0:  # 如果 n 能被 2 整除,持续除以 2
            n = n // 2
        while n % 3 == 0:  # 如果 n 能被 3 整除,持续除以 3
            n = n // 3
        while n % 5 == 0:  # 如果 n 能被 5 整除,持续除以 5
            n = n // 5
        
        # 如果 n 最终变为 1,则表示原始输入是丑数,否则不是丑数
        return n == 1

 

标签:丑数,int,self,leedcode,Solution,isUgly
From: https://www.cnblogs.com/yyyjw/p/18094295

相关文章

  • leedcode-二叉树的所有路径
    迭代法-深度优先搜索classSolution:defbinaryTreePaths(self,root:Optional[TreeNode])->List[str]:ifnotroot:return[]#如果根节点为空,直接返回空列表stack=[(root,str(root.val))]#初始化栈,栈中存储的是节点......
  • leedcode-有效的字母异位词
    自己写的,有字典很简单:classSolution:defisAnagram(self,s:str,t:str)->bool:#创建两个空字典来存储字符计数s_dic=dict()t_dic=dict()#遍历字符串s,计算每个字符出现的次数并存储在s_dic中foriins:......
  • leedcode- 回文链表
    毫无创意的一版:#定义一个类SolutionclassSolution:#定义一个方法isPalindrome,用于检查链表是否为回文defisPalindrome(self,head:Optional[ListNode])->bool:#如果链表为空,则它是一个回文ifnothead:returnTrue......
  • leedcode-汇总区间
    自己写的:classSolution:defsummaryRanges(self,nums):my_li=[]#创建一个空列表用于存储结果ifnotnums:#如果输入列表为空returnmy_li#返回空列表iflen(nums)==1:#如果输入列表只有一个元素my......
  • leedcode-翻转二叉树
    自己写的:classSolution:definvertTree(self,root:Optional[TreeNode])->Optional[TreeNode]:#创建一个新的TreeNode以存储反转后的树newroot=TreeNode()#如果输入的根节点为空,则返回空ifnotroot:......
  • leedcode-用队列实现栈
    利用内置的listclassMyStack:def__init__(self):#初始化一个空列表用于存储栈的元素self.li=list()defpush(self,x:int)->None:#向栈中压入元素xself.li.append(x)defpop(self)->int:#从栈顶弹......
  • leedcode-完全二叉树的节点个数
    自己写的,使用广度优先BFS,迭代:classSolution:defcountNodes(self,root:Optional[TreeNode])->int:#如果根节点为空,则树中节点数为0ifnotroot:return0#初始化队列,并将根节点放入队列中queue=[root]......
  • leedcode 反转链表
    自己写的,遍历一遍链表,再反向生成一个新链表classSolution:defreverseList(self,head:Optional[ListNode])->Optional[ListNode]:#检查链表是否为空ifnothead:returnNone#初始化一个空列表,用于存储原始链表节点的值......
  • leedcode-同构字符串
    自己写的:classSolution:defisIsomorphic(self,s:str,t:str)->bool:#使用match函数分别检查s到t和t到s的映射关系res_a=self.match(s,t)res_b=self.match(t,s)#如果两个方向的映射关系都成立,则说明......
  • leedcode-移除链表元素
    自己写的:#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defremoveElements(self,head:Optional[ListNode],val):#初始化一个......