欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Leetcode刷题记录——263. 丑数

程序员文章站 2022-07-15 12:13:57
...

Leetcode刷题记录——263. 丑数
注意:
1、数字1是丑数
2、一个数是丑数,意味着
它可以至少被{2,3,5}中的一个整除 且 它除以这个数的结果也是丑数

class Solution:

    def __init__(self):
        self.uglyset = {1,2,3,5}#{2:1,3:1,5:1}
    def isUgly(self, num: int) -> bool:
        return self.func(num)
    def func(self,num):
        if num in self.uglyset:
            return True
        elif num <= 0:
            return False
        else:
            res2 = self.func(num/2) if num % 2 == 0 else False
            if res2 == True:
                self.uglyset.add(res2)#1
                return True
            res3 = self.func(num/3) if num % 3 == 0 else False
            if res3 == True:
                self.uglyset.add(res3)# = 1
                return True
            res5 = self.func(num/5) if num % 5 == 0 else False
            if res5 == True:
                self.uglyset.add(res5)# = 1
                return True
            return False